Linux学习 -- 用户和用户组管理
1 用户配置文件
1.1 用户信息文件 /etc/passwd
查看帮助 man 5 passwd
-- account:password:UID:GID:GECOS:directory:shell
-account 用户名 注意规范
-passwd 密码标志 x表示有密码 具体密码在shadow中
-UID user ID 0:超级用户, 由UID决定,不由用户名决定
1-499:系统用户(伪用户),不能登录,不能删,由系统服务或命令调用
500-65535:普通用户
-GID group ID 初始组ID 用户创建时产生的组,每个用户只能有一个初始组,不建议更改,具体属于哪个组看/etc/group
附加组:一个用户还可以加入多个其他的用户组
-GECOS 用户说明
-directory 用户家目录 超级用户: /root/ 普通用户: /hoshme/用户名/
-shell 登录之后的Shell 就是Linux的命令解释器 标准shell:/bin/bash 之外还有/sbin/nologin 不能登录
1.2 影子文件 /etc/shadow
-1 用户名
-2 加密密码 SHA512散列加密算法 "!!"或"*"表示没有密码,不能登录
-3 密码最后一次修改的日期 Linux的时间戳 1970-1-1后的第n天
-4 两次密码修改的时间间隔
-5 密码有效期
-6 密码修改到期前的警告天数
-7 密码过期后的宽限天数 0或不写:到期立即失效 -1:用不失效
-8 账号失效时间 时间戳表示
时间戳 --> 日期:date -d "1970-01-01 16066 days"
日期 --> 时间戳:echo $(($(date --date="2015/10/13" +%s)/86400+1))
-9 保留字段
1.3.1 组信息文件 /etc/group
-1 组名
-2 组密码标志 具体密码在/etc/gshadow中 不推荐使用
-3 GID 组ID 和 UID类似
-4 组中附加用户 和passwd对照看才能知道初始用户
1.3.2 组密码文件 /etc/gshadow
-1 组名
-2 组密码
-3 组管理员用户名
-4 组中附加用户
2 用户管理相关文件 添加用户时自动建立的
2.1 用户的家目录
$ 普通用户 /home/用户名/ 权限700
# 超级用户 /root/ 权限550
2.2 用户的邮箱
/var/spool/mail/用户名
2.3 用户模板目录
/etc/skel/
3 用户管理命令
useradd [选项] 用户名
-u UID: 手工指定UID
-d 家目录: 手工指定家目录
-c 用户说明: 手工指定用户的说明
-g 组名: 手工指定初始组
-G 组名: 指定用户的附加组 逗号分隔
-s shell: 手工指定用户的登录shell。默认/bin/bash
用户默认值文件 /etc/default/useradd
/etc/login.defs
passwd [选项] [用户名]
只有超级用户才能加[用户名],普通用户直接passwd
-S 查询用户密码的状态 仅限超级用户
-l 锁定用户 实际上是更改shadow中密码位前加了双感叹号
-u 解锁用户
--stdin 使用字符串作为用户的密码
echo "123" | passwd --stdin zoro 可以用户shell编程中,批量添加
usermod 修改已存在用户信息
-u -g -G -c -d
-L lock
-U unlock
chage 修改用户密码状态
-l list
-d shadow 3
-m 4
-M 5
-W 6
-I 7
-E 8
唯一有用的是-d,其他都可以通过修改shadow文件实现
chage -d 0 xxx 结果:xxx一登录就要修改密码
userdel [-r] 用户名
-r 同时删除家目录
id 查看用户ID
su [选项] 用户名 切换用户身份
-: 连带用户的环境变量一起切换 - 注意不要省!!!
-c:仅执行一次,而不切换用户身份 eg. $su - root -c "useradd user3"
4 用户组管理命令
groupadd [选项] 组名
-g GID
groupmod [选项] 组名 不如删了重建
-g GID
-n 新组名
groupdel 组名
组里若有初始用户,则不能删除组
附加用户不影响
gpasswd 选项 组名
-a 用户加入组
-d 用户从组中删除
Linux学习 -- 用户和用户组管理的更多相关文章
- Linux命令——用户和用户组管理
Linux命令--用户和用户组管理 命令groupadd 作用:新增组 格式:groupadd [-g GID] groupname 参数:-g,指定GID,一般从500开始 说明:一般不必加-g参数 ...
- 2019/12/11学习内容摘要(Linux系统用户与用户组管理①)
一,认识/etc/passwd和/etc/shadow 1. /etc/passwd :文件中保存系统中所有的用户和用户的主要信息. 在命令行输入 cat /etc/passwd | head ( ...
- Linux 学习笔记04丨Linux的用户和用户组管理
Chapter 3. 用户和用户组管理 由于Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以该账号身份进入系统. 3.0 用户与 ...
- linux之用户和用户组管理详解
#############用户和用户组管理###################linux只认识UID和GID #可在/etc/passwd 和/etc/group中找到 ##/etc/passwd ...
- linux系统用户以及用户组管理
本系列的博客来自于:http://www.92csz.com/study/linux/ 在此,感谢原作者提供的入门知识 这个系列的博客的目的在于将比较常用的liunx命令从作者的文章中摘录下来,供自己 ...
- Linux 操作系统的用户和用户组管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入 系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...
- linux入门教程(七) linux系统用户以及用户组管理
关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...
- Linux的用户和用户组管理
Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控 ...
- (转)Linux的用户和用户组管理
原文 Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并 ...
随机推荐
- [转载]The Island Castaway mac版解锁
http://blog.sina.com.cn/s/blog_506b3ac90101ke0e.html 1.首先,去安装一个The Island - Castaway™ mac free版,然后打开 ...
- 生成SQL脚本的方法
2点需要注意的关键: (1)选择特定数据库对象不包含用户选项: (2)要编写脚本的数据的类型选择"架构和数据".
- shell变量的替换
1 shell变量基础shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如let.declare.expr. ...
- html元素中class属性值多个空格分格是什么意思?
即指定多个class,这是bootstrap常干的事,比如 <div class="alert alert-info"> 请问,这两个class之间的关系是什么,二者的 ...
- ios控件 UIViewController
//通过xib文件创建一个视图控制器.并作为窗口的根控制器 self.viewController = [[ViewController alloc] initWithNibName:@"V ...
- csdn的调查问卷,好多都不懂哈
http://bss.csdn.net/cview/reg/?project_id=2412&identy_id=1538
- postgres-xl 集体搭建(1)
安装并编辑脚本 cd /opt/curl -O http://files.postgres-xl.org/postgres-xl95r1beta1.tar.gztar -zxvf postgres-x ...
- Linux系统故障处理案例(一)【转】
2016-08-05 14:41 运行环境:CentOS6.7 故障原因: 昨天在线执行命令yum -y update 在命令执行途中,强制中断并直接运行poweroff命令关机.再次开机出现如图所示 ...
- Service的启动方式
Service的启动方式: 两种启动模式,一种是非绑定启动模式,另一种是绑定启动模式. 一.startservice方式启动 Intent intent = new Intent(this, Firs ...
- 快速批量插入sqlserver方法之我见
---------------------------------------------------------------------------------------------------- ...