目录
1.用户信息文件
1.1/etc/passwd文件
1.2/etc/shadow文件
1.3/etc/group文件
2.用户管理工具
2.1命令行用户管理
2.1.1useradd
2.1.2usermod
2.1.3userdel
2.1.4groupadd
2.1.5groupdel
2.1.6groupmod
2.2GUI用户管理器
3.粘滞位SetUID和SetGID
1.用户信息文件
1.1/etc/passwd文件 文件对应条目,各项之间用 : 分隔
root:x:0:0:root:/root:/bin/bash
用户名 | 密码 | 用户ID | 组ID | 占位符 | 主目录 | shell路径 |
Username | passwd | User ID | Group ID | GECOS | Directory | shell |
root | x | 0 | 0 | root | /root | /bin/shell |
1.2/etc/shadow文件
adins:$6$IlC5gSnU75/4KIzt$lPRyOL1tewVh7LaGVBba95Q5VoLkKObnJIK6kiyiETagPZlpFVtZzUaloWjFrOxOs96NLr2uCpUH0jFnz99ru1
:19048:0:99999:7:::
与passwd文件一样,shadow文件使用 :分隔各项。
对应列表如下:
登录名 | 加密密码 | 最后修改密码的日期 | 多少天后可以修改密码 | 多少天后必须修改密码 | 密码到期前多少天通知用户 | 密码到期后多少天禁用账户 | 禁用账户的日期 | 保留字段 |
adins | $6$IlC... | 19048 | 0 | 99999 | 7 | 空 | 空 | 空 |
1.3/etc/group文件
adm:x:4:syslog,adins
cdrom:x:24:adins
sudo:x:27:adins
dip:x:30:adins
plugdev:x:46:adins
lpadmin:x:122:adins
lxd:x:133:adins
adins:x:1000:
sambashare:x:134:adins
如图所示,每个用户都有组且可以不止一个,passwd文件中记录的组ID是默认组ID。
对应字段:
组名称 | 组密码 | 组ID | 组成员 |
Group name | Group passwd | Group ID | Group members |
adm | x | 4 | syslog,adins |
2.用户管理工具 2.1命令行用户管理 流行的命令行用户管理工具有:useradd、userdel、adduser、usermod、deluser、groupadd、groupdel、groupmod
2.1.1useradd
1.注意: 在使用useradd命令创建新用户时,不会自动为用户创建主目录,不会自动为用户指定shell版本,不会为用户创建密码。
如:useradd project3
2.使用参数创建有主目录,shell版本的用户,
如:sudouseradd-d"/home/project3"-m-s "/bin/bash"project3
常用命令行选项:
(1) -d:指定用户的主目录
(2) -m:如果存在不再创建,但是此目录并不属于新创建用户;如果主目录不存在,则强制创建; -m和-d一块使用。
(3) -s:指定用户登录时的shell版本
(4) -M:不创建主目录
2.1创建完修改密码:sudo passwd project3
2.1.2usermod
usermod [-LU][-c ][-d ][-e ][-f ][-g ][-G ][-l ][-s ][-u ] [用户名]修改用户账号参数
参数说明:
-c修改用户帐号的备注文字。
-d登入目录>修改用户登入时的目录。
-e修改帐号的有效期限。
-f修改在密码过期后多少天即关闭该帐号。
-g修改用户所属的群组。
-G修改用户所属的附加群组。
-l修改用户帐号名称。
-L锁定用户密码,使密码无效。
-s修改用户登入后所使用的shell。
-u修改用户ID。
-U解除密码锁定。
2.1.3userdel
userdel [options] 用户名
-f强制删除
-r删除用户和主目录
2.1.4groupadd
groupadd [options] groupname添加一个新的组
参数
-f,--force 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与-g一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。
-g,--gid GID 这个值必须是唯一的,除非使用-o选项。但必须是非负的。默认值是使用大于或等于GID_MIN(1000)的最小值,并且大于每个其他组。
-r,--system 创建一个系统组。新的系统组数字标识符在SYS_GID_MIN到SYS_GID_MAX范围内选择,定义在login.defs中而不是GID_MIN到GID_MAX。
2.1.5groupdel
groupdel groupname
2.1.6groupmod
groupmod [option] groupname 修改组参数
-g,--gid修改组ID
-n,--new-name修改组名称
-o --non-unique允许使用重复的组ID
-p --password修改组的密码
2.2GUI用户管理器 Ubuntu:gnome-control-center user-accounts
图形化管理用户账号。
3.粘滞位SetUID和SetGID 使用粘滞位SetUID标记的的程序,允许其他用户根据程序所有者的权限运行。
使用chmod命令可以设置SetUID粘滞位。要使程序具有SetUID,需要在分配的权值前加4,要使程序启用SetUID,可在分配的权值前加2。
如:使/bin/ls变成SetUID程序(不建议这么做)
赋予粘滞位:sudo chmod 4755 /bin/ls755是要赋给ls的权限,4是粘滞位
删除粘滞位:sudo chmod 755 /bin/ls
赋予用户粘滞位:sudo chmod u+s /bin/ls这是chmod的变体
删除用户的粘滞位:sudo chmod u-s /bin/ls
如:使/bin/ls变成SetGID程序(不建议这么做)
赋予SetGID:sudo chmod g+s /bin/ls
删除SetGID:sudo chmod g-s /bin/ls
【linux之旅|linux命令行(五)管理用户和组】
推荐阅读
- K8S|saltstack安装
- linux|shell编程--三剑客之sed
- linux|shell编程--三剑客之awk
- shell|Linux系统yum安装rz sz命令
- c语言中point的用法|c语言中point的用法_嵌入式C语言自我修养 01(Linux 内核中的 C 语言语法扩展)
- Springboot+Git+Jenkins+Docker实现CI/CD
- 其他|单点登录的几种方案
- idea|IDEA软件: 前进和后退添加到工具栏
- Linux|Linux-基础IO