Linux之用户和用户组
1 用户分为超级用户(UID=0)和普通用户(UID>=1000)和系统用户(0<UID<1000)。
系统用户是不可以登录的伪用户给服务使用的。
2 用户的一些操作:
新建用户:
useradd 用户名 -d [目录] -g[标准组] -G[从属组] -s[用户shell] -u[指定用户ID] -p[密码]
修改用户所属的组:
usermod 用法与useradd基本相同
删除用户:
userdel 用户名
userdel -r 用户名 #删除与该用户有关的相关用户
给用户设置密码:
passwd 用户名
passwd ##给root用户修改密码
用户相关的内容存在/etc/passwd
账户密码保存在/etc/shadow目录下,只对root可读。
3 组(组里面有多个用户,一个用户可以加入多个组)
每个用户都有一个自己的私有组。
每个用户都可以被添加到其他组来获取额外的存取权限。
组相关的内容被放到/etc/group中
组的密码放在/etc/gshadow中
4 组的一些操作:
groupadd 组名 -g [gid] ##新建组添加组ID
gpasswd 组名 #给组设置密码
5 标准组和从属组:
标准组:让用户属于某个组,这个组是用户主要的组
useradd 用户名 -g 用户组名
从属组: 让新建的用户从属与某个组
useradd 用户名 -G 用户组名
标准组和私有组的区别:
标准组可以容纳多个用户,若使用标准组,在创建新用户时就应该指明他所属的组。
私有组中只有用户自己,当在创建一个新的用户时,若没有知道他所属于的组,则系统建立一个和该用户同名的私有组。且用户被分配到这个私有组中去。
当一个用户同属多个组时,将这些组分为主组(用户登录时的组)和附加组(登陆后可以切换的组)。
6 口令文件的七个字段(/etc/passwd)
每个用户有一条记录,有七个用分号间隔的字段组成。
影子口令文件:
每个用户有一条记录,有九个用分号间隔的字段组成。
7 用户与用户组的批处理:
成批生产/更新一组账户:
newusers <filename>
filename的格式与 /etc/passwd一致。
成批更新用户口令:
chpasswd <filename>
filename每一行的格式:
username:passwd #username是系统上已经存在的用户。
举例:
自动生成密码:
pwgen [选项] [口令长度] [口令个数]
8 口令的管理:
禁用用户账户的口令:
passwd -l 用户名
查看用户账户口令状态
passwd -S 用户名
恢复用户账户口令:
passwd -u 用户名
清除用户账户口令:
passwd -d 用户名
设置新用户口令时效:
修改/etc/login.defs的相关配置参数
设置已存在用户的口令时效:
chage 命令
chage [选项] [用户登录名]
举例:
查看用户当前登录的口令时效信息:
chage -l 用户名
让用户下次登录之后修改口令:
chage -d 0 用户名
让用户两天内不能更改口令,且口令最长的存活期为30天,并在过期前5天通知用户:
chage -m 2 -M 30 -W 5 用户名
9 用户切换命令:
su 用户名 #直接切换到该用户上。
sudo 直接使用sudo命令前缀执行系统管理命令,这样不会泄露超级用户口令。
前提是要在/etc/sudoers中添加:
lyl ALL =(ALL)ALL
这样做完以后,当切换到lyl用户上时,在命令前添加sudo可以实现系统管理员的功能。
10 改变属主或组举例:
11 umask命令: