版权声明:作者-傲娇天子 博文主页地址:https://blog.csdn.net/qq_41116956 欢迎转载,转载请在文章页面明显位置给出原文链接,谢谢 https://blog.csdn.net/qq_41116956/article/details/82782379
-
用户和组的配置文件:
存放用户ID信息的文件:/etc/passwd
存放用户组ID信息的文件:/etc/group
存放用户密码的文件:/etc/shadow
备注:root的ID是0;在Centos7中创建的用户UID是从1000开始的
注意:本文实验环境为Centos7
创建用户:
[root@localhost ~]# useradd yasuo
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
ad:x:1000:1000:ad:/home/ad:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
yasuo:x:1001:1001::/home/yasuo:/bin/bash
可以看到的是,yasuo用户的UID和GID都是1001
下面是表示含义:
yasuo: x: 1001: 1001: : /home/yasuo :/bin/bash
用户名 密码占位符 UID GID 描述信息 家目录 shell
创建用户并指定UID:
[root@localhost ~]# useradd -u 1010 yasuo_1
[root@localhost ~]# tail /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:988:983::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
ad:x:1000:1000:ad:/home/ad:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
yasuo:x:1001:1001::/home/yasuo:/bin/bash
yasuo_1:x:1010:1010::/home/yasuo_1:/bin/bash
创建用户并指定家目录:
注意:-m是创建~,-M是不创建~,所以-m并不能指定~;-d指定~
如下:使用-m修改~会报错,因为-m只是需要创建~
[root@localhost ~]# useradd -m /media/yasuo_2 yasuo_2
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
所以,指定用户~的方法是:
[root@localhost ~]# useradd -d /media/yasuo_2 yasuo_2
[root@localhost ~]# tail /etc/passwd
gnome-initial-setup:x:988:983::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
ad:x:1000:1000:ad:/home/ad:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
yasuo:x:1001:1001::/home/yasuo:/bin/bash
yasuo_1:x:1010:1010::/home/yasuo_1:/bin/bash
yasuo_2:x:1011:1011::/media/yasuo_2:/bin/bash
创建用户并指定组:
[root@localhost ~]# useradd -g yasuo yasuo_3
注意:所指定的组是必须要存在的
[root@localhost ~]# tail /etc/group
slocate:x:21:
avahi:x:70:
postdrop:x:90:
postfix:x:89:
tcpdump:x:72:
ad:x:1000:ad
apache:x:48:
yasuo:x:1001:
yasuo_1:x:1010:
yasuo_2:x:1011:
[root@localhost ~]# useradd -g yasuo yasuo_3
[root@localhost ~]# tail /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
ad:x:1000:1000:ad:/home/ad:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
yasuo:x:1001:1001::/home/yasuo:/bin/bash
yasuo_1:x:1010:1010::/home/yasuo_1:/bin/bash
yasuo_2:x:1011:1011::/media/yasuo_2:/bin/bash
yasuo_3:x:1012:1001::/home/yasuo_3:/bin/bash
[root@localhost ~]# tail -1 /etc/group
yasuo_2:x:1011:
[root@localhost ~]# tail /etc/group
slocate:x:21:
avahi:x:70:
postdrop:x:90:
postfix:x:89:
tcpdump:x:72:
ad:x:1000:ad
apache:x:48:
yasuo:x:1001:
yasuo_1:x:1010:
yasuo_2:x:1011:
可以看到,创建的新用户没有分配组ID,但是UID是分配了的
指定用户的附加组:
[root@localhost ~]# useradd -G yasuo,root yasuo_4
[root@localhost ~]# id yasuo_4
uid=1013(yasuo_4) gid=1013(yasuo_4) 组=1013(yasuo_4),0(root),1001(yasuo)
yasuo_4用户,有UID和对应的GID,不过,还包括在了yasuo和root的组里面
用户存在多个组中时候,可以在/etc/group文件中看到对应的组和用户的关系
[root@localhost ~]# cat /etc/group
root:x:0:yasuo_4
bin:x:1:
daemon:x:2:
......
postdrop:x:90:
postfix:x:89:
tcpdump:x:72:
ad:x:1000:ad
apache:x:48:
yasuo:x:1001:yasuo_4
yasuo_1:x:1010:
yasuo_2:x:1011:
yasuo_4:x:1013:
可以看到的是在yasuo组中有yasuo_4这个用户
yasuo:x:1001:yasuo_4
删除用户:
注意userdel -r表示删除用户的时候删除用户的~和该用户的相关文件
[root@localhost home]# ls
ad yasuo yasuo_1 yasuo_3 yasuo_4
[root@localhost home]# userdel yasuo_4 #不会删除~
[root@localhost home]# ls
ad yasuo yasuo_1 yasuo_3 yasuo_4
[root@localhost home]# userdel -r yasuo_3 #会删除~
[root@localhost home]# ls
ad yasuo yasuo_1 yasuo_4
-
用户修改密码:
修改用户密码:
[root@localhost ~]# passwd yasuo
更改用户 yasuo 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
针对交互式修改密码:
[root@localhost ~]# echo 123456 | passwd --stdin yasuo
更改用户 yasuo 的密码 。
passwd:所有的身份验证令牌已经成功更新。
用户登录时强制修改密码:
[root@localhost ~]# chage -d 0 yasuo
[root@localhost ~]# su yasuo
[yasuo@localhost root]$ su yasuo
密码:
您需要立即更改密码(root 强制)
为 yasuo 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
-
用户模板文件
小技巧:以下都可以直接去修改文件更加快捷
修改UID:
[root@localhost ~]# usermod -u 1234 yasuo_1
[root@localhost ~]# tail /etc/passwd
gnome-initial-setup:x:988:983::/run/gnome-initial-setup/:/sbin/nologin
......
yasuo:x:1001:1001::/home/yasuo:/bin/bash
yasuo_1:x:1010:1010::/home/yasuo_1:/bin/bash
yasuo_2:x:1011:1011::/media/yasuo_2:/bin/bash
[root@localhost ~]# usermod -u 1234 yasuo_1
[root@localhost ~]# tail /etc/passwd
gnome-initial-setup:x:988:983::/run/gnome-initial-setup/:/sbin/nologin
......
yasuo:x:1001:1001::/home/yasuo:/bin/bash
yasuo_1:x:1234:1010::/home/yasuo_1:/bin/bash
yasuo_2:x:1011:1011::/media/yasuo_2:/bin/bash
修改shell:
[root@localhost ~]# usermod -s /sbin/nologin yasuo_1
[root@localhost ~]# tail /etc/passwd
......
yasuo:x:1001:1001::/home/yasuo:/bin/bash
yasuo_1:x:1234:1010::/home/yasuo_1:/bin/bash
yasuo_2:x:1011:1011::/media/yasuo_2:/bin/bash
[root@localhost ~]# usermod -s /sbin/nologin yasuo_1
[root@localhost ~]# tail /etc/passwd
......
yasuo:x:1001:1001::/home/yasuo:/bin/bash
yasuo_1:x:1234:1010::/home/yasuo_1:/sbin/nologin
yasuo_2:x:1011:1011::/media/yasuo_2:/bin/bash
解决模板文件被删除之后的方法:
[root@localhost ~]# rm -rf /home/yasuo/.bash*
[root@localhost ~]# su yasuo
bash-4.2$ exit
exit
[root@localhost ~]# cp /etc/skel/.bash* /home/yasuo/
[root@localhost ~]# chown yasuo:yasuo /home/yasuo/.bash*
[root@localhost ~]# su yasuo
[yasuo@localhost root]$ exit
exit
[root@localhost ~]#