最近用到了linux用户管理,因此写个文章记录一下
- 用户操作
- 添加用户
格式:useradd [-选项] [用户名]
选项:
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-d, --home-dir HOME_DIR 新账户的主目录
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-U, --user-group 创建与用户同名的组
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
- 修改口令
passwd 用户名;不加用户名就是修改自己账户的口令
- 删除用户
格式:userdel [选项] 用户名
选项:
-r, --remove 删除主目录和邮件池
- 切换用户
su [-] [用户名]
注:su后面可以加-,也可以不加。一般用户执行su命令不加用户名的情况下,默认切换到root用户 - sudo命令
这个命令默认root才可以使用,普通用户要使用的话需要在/etc/sudoers
中添加规则
[dandelion@localhost skel]$ sudo touch readme.md
[sudo] dandelion 的密码:
dandelion 不在 sudoers 文件中。此事将被报告。
vi /etc/sudoers
## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
dandelion ALL=(ALL) ALL
## 用户名 所有主机=(获取哪个用户的身份) sudo可以使用的命令
[dandelion@localhost skel]$ sudo touch readme.md
[sudo] dandelion 的密码:
[dandelion@localhost skel]$ ls
readme.md
[dandelion@localhost skel]$
- linux用户信息存储在
/etc/passwd
文件当中
文件格式:用户名:密码:UID:GID:用户信息:HOME目录路径:用户shell
例如:
shylock:x:1001:1001::/home/shylock:/bin/bash
第一个字段:用户名,代表用户账号的字符串;
第二个字段:存放的是该账户的口令;此处为x是因为后来基于安全因素,讲其放入了 /etc/shadow中了,这里用x代替;
第三个字段:这个数字代表用户识别号,也称为uid;同样,如果把test用户的uid修改 为0,系统就会认为root和test是同一个账户。(uid的取值范围是0~65535,实 际上已经可以支持到429 496 7294)
第四个字段:这个数字表示组标识号,也称为gid;它对应着/etc/group中的一条记录。
第五个字段:注释说明,没有实际意义;
第六个字段:用户的家目录,当用户登录时,就处在这个目录下;
最后一个字段:用户为用户的shell;用户登录后,要启动一个进程,用来将用户下达的指 令传给内核;
【参考网站CSDN:第五章:Linux系统用户与用户组管理】
- linux用户密码信息存储在文件
/etc/shadow
当中
存储的内容包括加密后的密码,密码过期时间,密码过期提示天数等
例如:
shylock:$6$doIEJZ1r$I2b2dqfVYr/0cE5vHoKVEnvUPeWVeabwon2C.EV87NVv0suoe1d1y1WrnkmVEsx85hyWIHbtkBEkPhGdeavxQ/:18311:0:99999:7:::
第一个字段:用户名,与/etc/passwd对应;
第二个字段:用户密码;是该账号的真正密码,这个密码已经加密。
第三个字段:上次更改密码的日期;
第四个字段:要过多少天才可以更改密码;
第五个字段:密码多少天后才可以更改密码;默认为0,即不受限制。
第六个字段:密码到期前的警告期限;默认为99999,可以理解为永远不需要改。
第七个字段:账号的生命周期;
第八个字段:账号的生命周期;
最后一个字段:做保留用的,无意义;
【参考网站CSDN:第五章:Linux系统用户与用户组管理】
- 文件
/etc/default/useradd
,通过useradd
添加用户时的规则文件
[dandelion@localhost default]$ cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home //用户的家目录创建的位置
INACTIVE=-1 //是否启用账号过期停权,-1表示不启用
EXPIRE= //账号终止日期,不设置表示不启用
SHELL=/bin/bash //所用shell的类型
SKEL=/etc/skel //创建用户时,默认在用户家目录创建的文件(创建的文件都是从这个目录下拷贝过去的)
CREATE_MAIL_SPOOL=yes
- 用户组操作
- 添加用户组
groupadd 用户组名
或者groupadd -g 用户指定GID 用户组名
如果不加-g,则会按系统默认的gid创建组,跟uid一样,gid也是从1000开始的 - 删除用户组
groupdel 用户组名
- 显示用户所属的用户组
groups
- 修改用户组信息
groupmod
[root@localhost etc]# groupmod
用法:groupmod [选项] 组
选项:
-g, --gid GID 将组 ID 改为 GID
-h, --help 显示此帮助信息并推出
-n, --new-name NEW_GROUP 改名为 NEW_GROUP
-o, --non-unique 允许使用重复的 GID
-p, --password PASSWORD 将密码更改为(加密过的) PASSWORD
-R, --root CHROOT_DIR chroot 到的目录
- gpasswd用法
格式:gpasswd [选项] 组
选项:
-a, --add USER 向组 GROUP 中添加用户 USER
-d, --delete USER 从组 GROUP 中添加或删除用户
-r, --delete-password remove the GROUP's password
-R, --restrict 向其成员限制访问组 GROUP
-M, --members USER,... 设置组 GROUP 的成员列表
-A, --administrators ADMIN,... 设置组的管理员列表
除非使用 -A 或 -M 选项,不能结合使用这些选项。
设置用户组密码:gpasswd 用户组名
设置用户组管理员命令:gpasswd -A 用户名 用户组名
添加某账号到组命令:gpasswd -M 用户名 用户组名
从组中删除某账号命令:gpasswd -d 用户名 用户组名
网友评论