用户和用户组管理
来源:互联网 发布:算法导论pdf非扫描 编辑:程序博客网 时间:2024/05/22 01:35
1. 用户配置文件
1.1 用户信息文件 /etc/passwd
/etc/passwd 文件的权限是644,它的部分内容如下:
root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/sync
共有7个字段,中间用冒号分割。
第1个字段:用户名称
第2个字段:密码标志(密码存放在 /etc/shadow 文件中)
第3个字段:UID(用户ID)
0 : 超级用户(一般为root)1-499 : 系统用户(伪用户,不可删除和登陆)500-65535 : 普通用户(自行添加的用户)如果把普通用户的UID改为0,则该普通用户就会拥有超级用户的权限,但家目录不会变。
第4个字段:GID(用户初始组ID)
初始组: 指用户一建立就立刻拥有这个用户组的相关权限,每个用户只能有一个初始组。初始组的名称一般和用户名相同。附加组: 指用户可以加入多个其他的用户组,并拥有相关的组权限,附加组可以有多个。
第5个字段:用户说明(备注)
第6个字段:用户的家目录
超级用户: /root普通用户:/home/用户名
第7个字段:登录之后的shell
shell就是linux的命令解释器。在 /etc/passwd 文件中,除了标准shell是 /bin/bash 之外,还可以写成 /sbin/nologin(不可登录)。
1.2 影子文件 /etc/shadow
影子文件 /etc/shadow 的文件权限是000,其中保存了加密后的用户密码。
它的部分内容如下:
root:$6$AM4DdsqkD09LYvbq$ljcjuHOAz8oAowhIhqx6eYnUeER4zQPiTNr44p1GTK/MJmnpHbMSbmKdXa5EOVk/ssQt.y46XTqMRQB5Hw2Uj0:17116:0:99999:7:::bin:*:15980:0:99999:7:::daemon:*:15980:0:99999:7:::adm:*:15980:0:99999:7:::lp:*:15980:0:99999:7:::sync:*:15980:0:99999:7:::shutdown:*:15980:0:99999:7:::halt:*:15980:0:99999:7:::mail:*:15980:0:99999:7:::uucp:*:15980:0:99999:7:::operator:*:15980:0:99999:7:::games:*:15980:0:99999:7:::gopher:*:15980:0:99999:7:::ftp:*:15980:0:99999:7:::nobody:*:15980:0:99999:7:::dbus:!!:17116::::::vcsa:!!:17116::::::
共有9个字段,中间用冒号分割。
第1个字段:用户名
第2个字段:加密后的密码
加密算法升级为SHA512散列加密算法。如果密码是 "!!" 或 "*" ,表示没有密码,不能登录。
第3个字段:密码最后一次的修改日期
时间戳表示,使用1970年1月1日作为标准时间,每过一天,它的值加1。
第4个字段:禁止修改密码的时间间隔(和第3个字段相比,0表示没有限制)
第5个字段:密码的有效期(和第3个字段相比)
第6个字段:密码到期前提示修改的警告天数(和第5个字段相比)
第7个字段:密码过期后的宽限天数(和第5个字段相比)
0 : 表示密码过期后,立即失效,没有指明也等同于0。-1 :表示密码过期后,永远不会失效。
第8个字段:账号失效时间(时间戳表示)
第9个字段:保留字段
时间戳(以天为单位)的换算:
时间戳换算为日期:date -d "1970-01-01 17116 days"日期换算为时间戳:echo $(($(date --date="2017/01/25" +%s)/86400+1))
1.3 用户组信息文件 /etc/group
组信息文件 /etc/group 的权限为644,它的部分内容如下:
root:x:0:bin:x:1:bin,daemondaemon:x:2:bin,daemonsys:x:3:bin,admadm:x:4:adm,daemontty:x:5:disk:x:6:lp:x:7:daemonmem:x:8:
共有4个字段,中间用冒号分割。
第1个字段:组名称
第2个字段:组密码标志
第3个字段:GID(组ID)
第4个字段:组中的附加用户
1.4 用户组密码文件 /etc/gshadow
组密码文件 /etc/gshadow 的权限是000,它的部分内容如下:
root:::bin:::bin,daemondaemon:::bin,daemonsys:::bin,admadm:::adm,daemontty:::disk:::lp:::daemonmem:::
共有4个字段,中间用冒号分割。
第1个字段:组名称
第2个字段:组密码(很少用)
第3个字段:组中的管理员用户名称
第4个字段:组中的附加用户
2. 用户管理相关文件
2.1 用户的家目录
- 超级用户:/root,所有者和所属组都是root,权限是550
- 普通用户:/home/用户名,所有者和所属组都是该用户名,权限是700
2.2 用户的邮箱
- /var/spool/mail/用户名
2.3 用户模板目录
- /etc/skel
当创建一个新用户时,用户模板目录中的文件(包括隐藏文件),会自动出现在用户的家目录中。
3. 用户管理命令
3.1 添加用户 useradd
命令格式:useradd [选项] 用户名
常见选项:
-u 用户ID:手工指定用户的UID(不推荐手工指定)-d 家目录:手工指定用户的家目录(不推荐手工指定)-c 用户说明:手工指定用户的说明(不推荐手工指定)-g 组名:手工指定用户的初始组(不推荐手工指定)-G 组名:指定用户的附加组(多个附加组中间用逗号分隔)-s shell:手工指定用户的登录shell。默认是/bin/bash。-r :创建一个系统用户
常见用法:
useradd user01useradd -r -g mysql -s /bin/false mysql
添加了一个新的用户之后,系统会默认自动创建用户的家目录、用户的初始组(组名和用户名相同)、用户的邮箱,而且 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 文件的内容也会随之自动更新。
添加一个新用户时,如果没有指定选项,则使用默认值。
用户默认值文件为 /etc/default/useradd,它的内容如下:
# useradd defaults fileGROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/bashSKEL=/etc/skelCREATE_MAIL_SPOOL=yes
相关说明:
GROUP:用户的默认组(现在的linux采用私有模式,该选项不会生效)HOME:用户的默认一级家目录INACTIVE:密码过期宽限天数(shadow文件的第7个字段)EXPIRE:密码失效时间(shadow文件的第8个字段)SHELL:默认的shellSKEL:用户的模板目录CREATE_MAIL_SPOOL:是否建立邮箱
还有一个用户默认值文件为 /etc/login.defs,内容较多,这里不作赘述。
3.2 设置用户密码 passwd
添加了用户后,一般都需要给该用户设置密码,否则,该用户就是不完整的,也就不能登录。
命令格式:passwd [选项] 用户名
该命令可用于设置或修改用户的密码,如果后面没有指定用户名,则表示给当前登录用户设置密码。
常见选项:
-S:查询用户密码的密码状态。仅root用户可用。-l:暂时锁定用户。仅root用户可用。-u:解锁用户。仅root用户可用。--stdin:通过管道符将输出的字符串作为用户的密码。
常见用法:
passwd user01只有超级用户才可以修改其他用户的密码,故只有超级用户才可以在后面指定用户名。passwd修改当前登录用户的密码。普通用户更改自己的密码时,必须遵守密码的复杂性原则。echo "123456" | passwd --stdin user01将user01的密码设置或修改为123456
3.3 修改用户信息 usermod
命令格式:usermod [选项] 用户名
常见选项:
-u 用户ID:修改用户的UID-c 用户说明:修改用户的说明信息-G 组名:修改用户的附加组-L:临时锁定用户-U:解锁
常见用法:
usermod -c "test user01" user01修改user01用户的说明信息usermod -G root user01将user01用户加入附加组root
3.4 修改用户密码状态 chage
命令格式:chage [选项] 用户名
常见选项:
-l:列出用户的详细密码状态-d 日期:修改密码最后一次的更改日期(shadow文件的第3个字段)-m 天数:两次密码的修改间隔(shadow文件的第4个字段)-M 天数:密码的有效期(shadow文件的第5个字段)-W 天数:密码过期前的警告天数(shadow文件的第6个字段)-I 天数:密码过期后的宽限天数(shadow文件的第7个字段)-E 日期:账号失效时间(shadow文件的第8个字段)
其实,通过vi命令修改shadow文件会更加方便。
常见用法:
chage -l user01查看user01用户的详细密码状态。chage -d 0 user01把密码最后一次的修改日期归0,这样用户一登录就必须修改密码。这条命令比较常用。
3.5 删除用户 userdel
命令格式:userdel [-r] 用户名
常见选项:
-r:删除用户的同时,删除用户的家目录
常见用法:
userdel -r user01删除user01用户,同时删除它的家目录。
删除用户实际上是对 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 文件中的相关行进行删除,同时还会删除用户的家目录和用户的邮箱。
3.6 查看用户ID信息 id
命令格式:id 用户名
常见用法:
id user01查看用户的UID、GID和组名(包括初始组和附加组)。
3.7 切换用户身份 su
命令格式:su [选项] 用户名
常见选项:
-:连带用户的环境变量一起切换-c 命令:仅执行一次命令,而不切换用户身份
超级用户切换为其他用户时不需要密码,而普通用户切换为其他用户时需要密码。
常见用法:
su user01切换为user01用户,但并不同时切换环境变量。这种用法会出现一些问题,故不推荐。su - user01完全切换为user01用户,同时切换环境变量。推荐使用。su - root -c "useradd user02"仅执行一次添加用户的命令,而不切换为root。
4. 用户组管理命令
4.1 添加用户组 groupadd
命令格式: groupadd [选项] 组名
常见选项:
-g 组ID:手工指定组的ID
常见用法:
groupadd testgroup01
4.2 修改用户组 groupmod
命令格式:groupmod [选项] 组名
常见选项:
-g 组ID:修改组的ID-n 新的组名:修改组的名称
常见用法:
groupmod -n testgroup02 testgroup01把组名testgroup01修改为testgroup02
4.3 删除用户组 groupdel
命令格式:groupdel 组名
注意:如果组中有初始用户,则不可使用该方法删除组。附加用户不会影响组的删除。
4.4 修改组中的成员 gpasswd
命令格式:gpasswd [选项] 组名
常见选项:
-a 用户名:向组中添加附加用户-d 用户名:把组中的附加用户删除
注意:gpasswd 只能对组中的附加用户进行添加或者删除操作。
常见用法:
gpasswd -a user01 root向root组中添加附加用户user01gpasswd -d user01 root把root组中的附加用户user01删除
- 用户和用户组管理
- 用户和用户组管理
- 用户和用户组管理
- LINUX用户和用户组管理
- ubuntu用户和用户组管理
- 用户和用户组管理命令
- Linux用户和用户组管理
- Linux用户和用户组管理
- Linux用户和用户组管理
- linux用户和用户组管理
- Linux用户和用户组管理
- Linux 用户和用户组管理
- linux用户和用户组管理
- Linux用户和用户组管理
- Linux-用户和用户组管理
- Linux 用户和用户组管理
- Linux用户和用户组管理
- Linux用户和用户组管理
- Luogu1074靶形数独
- The Knowledge of Linux-.-Day06
- linux学习-day05
- VTK修炼之道31:图像二值化_阈值法
- linux学习-day06
- 用户和用户组管理
- 51NOD 1347 旋转字符串
- 待做的题目……
- Jquery实现的几款漂亮的时间轴
- ASP数据库调用题把调用MSSQL数据库换成调用MDB数据库
- 进入后台后程序报错ADODBRecordset 错误 #x27;8ae79#x27;
- 有关asp读取文本框并截取想要的内容
- asp中向数据库不能插入数据
- asp网站题为什么网页没找到高手命