用户和用户组
3.1 用户配置文件和密码配置文件
useradd 用户名 增加用户
/etc/passwd/ 用户的密码文件(核心配置文件)
每个用户一行 冒号分7段
[root@dazhou ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dazhou:x:1000:1000::/home/dazhou:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
第一段 用户名
第二段 账户口令
第三段 用户标识号 uid
第四段 组标识号 gid
第五段 注释说明
第六段 用户的家目录
第七段 用户的shell(常见/bin/bash允许登录账户 /sbin/nologin 不允许登录账户)
/etc/shadow(专门的密码文件)
跟/etc/passwd 类似 冒号分九段
[root@dazhou ~]# cat /etc/shadow
root:$6$7cMjHX9q$ahjwYkc93GfDUbnLASRj3l2nQSOJYEt4u6GNyFMbUExIePI1aOKZwlXvKRny0Lc4pQFhDkiUlUiu1QZa1UGzk.:17969:0:99999:7:::
bin:*:16231:0:99999:7:::
daemon:*:16231:0:99999:7:::
adm:*:16231:0:99999:7:::
lp:*:16231:0:99999:7:::
sync:*:16231:0:99999:7:::
shutdown:*:16231:0:99999:7:::
halt:*:16231:0:99999:7:::
mail:*:16231:0:99999:7:::
operator:*:16231:0:99999:7:::
games:*:16231:0:99999:7:::
ftp:*:16231:0:99999:7:::
nobody:*:16231:0:99999:7:::
dbus:!!:17969::::::
polkitd:!!:17969::::::
avahi:!!:17969::::::
avahi-autoipd:!!:17969::::::
postfix:!!:17969::::::
sshd:!!:17969::::::
dazhou:!!:17972:0:99999:7:::
user1:!!:17972:0:99999:7:::
[root@dazhou ~]#
第一段 用户名
第二段 用户名密码
第三段 上次更改密码的时间(距离1970年1月1日的时间 计算公式为365*(年份-1970)+(年份-1970)/4+1)
第四段 要过多少天更改密码,默认0 不受限制
第五段 密码多少天后到期 默认99999 即永远不需要更改
第六段 密码到期前额警告期限天数
第七段 账号时效期限 一旦失效即锁定
第八段 账号的生命周期 (账户有限期天数 也是从1970.1.1开始计算)
第九段 保留 没意义
shadow- 为系统备份文件 误删可拷贝恢复文件
[root@dazhou ~]# ls /etc/shadow
shadow shadow-
3.2用户组管理
组文件信息
[root@dazhou ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:30:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
ssh_keys:x:999:
systemd-journal:x:190:
dbus:x:81:
polkitd:x:998:
avahi:x:70:
avahi-autoipd:x:170:
dip:x:40:
postdrop:x:90:
postfix:x:89:
sshd:x:74:
dazhou:x:1000:
user1:x:1001:
[root@dazhou ~]#
第一行组名
第二行 组密码?
第三行 gid 组标识号
增加组
groupadd (-g gid) 组名 增加(gid为参数)的组
**创建一个用户 会创建跟用户名一样的一个组**
[root@dazhou ~]# groupadd -g 1002 dazhou2
[root@dazhou ~]# tail -5 /etc/group
postfix:x:89:
sshd:x:74:
dazhou:x:1000:
user1:x:1001:
dazhou2:x:1002:
删除组
groupdel 组名 删除组
[root@dazhou ~]# groupdel dazhou2
[root@dazhou ~]# tail -5 /etc/group
postdrop:x:90:
postfix:x:89:
sshd:x:74:
dazhou:x:1000:
user1:x:1001:
[root@dazhou ~]# groupdel dazhou
groupdel:不能移除用户“dazhou”的主组
dazhou组里包含dazhou账户,只有删除dazhou账户后才能删除该组
3.3用户管理
增加用户
useradd [-u -g -d -s M] 用户名 增加用户
-u 参数 自定义uid centos7一般1000以上
-g 组名或者gid 自定义属于已存在的组
-d /家目录路径 自定义用户家目录
-s /bin/bash或者/sbin/nologin(允许或者不允许账户登录) 自定义shell
-M 表示不建立家目录
-u -g (指定uid gid)示例
[root@dazhou ~]# useradd -u 1002 -g 1000 dazhou11
[root@dazhou ~]# tail -n 5 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dazhou:x:1000:1000::/home/dazhou:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
dazhou11:x:1002:1000::/home/dazhou11:/bin/bash
-d -s (指定家目录 shell)示例
[root@dazhou ~]# useradd -d /home/keke -s /sbin/nologin dazhou2
[root@dazhou ~]# tail -n 5 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dazhou:x:1000:1000::/home/dazhou:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
dazhou11:x:1002:1000::/home/dazhou11:/bin/bash
dazhou2:x:1003:1003::/home/keke:/sbin/nologin
[root@dazhou ~]#
-M (不建立家目录)示例
[root@dazhou ~]# useradd -M dazhou3
[root@dazhou ~]# tail -n 5 /etc/passwd
dazhou:x:1000:1000::/home/dazhou:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
dazhou11:x:1002:1000::/home/dazhou11:/bin/bash
dazhou2:x:1003:1003::/home/keke:/sbin/nologin
dazhou3:x:1004:1004::/home/dazhou3:/bin/bash
[root@dazhou ~]# ls /home/
dazhou dazhou11 keke user1
直接创建用户uid会按序增长 gid不受影响
userdel 删除用户
userdel -r 用户 完全删除用户
[root@dazhou ~]# ls /home/
dazhou dazhou11 keke user1
[root@dazhou ~]# userdel -r dazhou2
[root@dazhou ~]# tail -n 5 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dazhou:x:1000:1000::/home/dazhou:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
dazhou11:x:1002:1000::/home/dazhou11:/bin/bash
dazhou3:x:1004:1004::/home/dazhou3:/bin/bash
[root@dazhou ~]# ls /home/
dazhou dazhou11 user1
userdel 用户 只会删除用户 而用户的家目录不会删除
[root@dazhou ~]# userdel dazhou11
[root@dazhou ~]# ls /home/
dazhou dazhou11 user1
[root@dazhou ~]#
家目录还能查到
3.4 usermod 更改用户属性
usermod [-u -g -d -s -G] 用户名 更改用户[uid gid 家目录 shell 扩展组]
-u uid
-g gid
-d 家目录
-s shell
-G 扩展组 可以组名或者gid 当添加一个扩展组时再添加会替换上个 可以usermod -G x,x 同时添加多个扩展组
示例
-u -g -d -s
[root@dazhou ~]# tail -5 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dazhou:x:1000:1000::/home/dazhou:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
dazhou3:x:1004:1004::/home/dazhou3:/bin/bash
dazhou4:x:1005:1005::/home/dazhou4:/bin/bash
[root@dazhou ~]# usermod -u 1006 -g 1004 -d /home/kke -s /sbin/nologin dazhou4
[root@dazhou ~]# tail -5 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dazhou:x:1000:1000::/home/dazhou:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
dazhou3:x:1004:1004::/home/dazhou3:/bin/bash
dazhou4:x:1006:1004::/home/kke:/sbin/nologin
[root@dazhou ~]#
-G
[root@dazhou ~]# id dazhou4
uid=1006(dazhou4) gid=1004(dazhou3) 组=1004(dazhou3)
[root@dazhou ~]# usermod -G 1001,1000,1004 dazhou4
[root@dazhou ~]# id dazhou4
uid=1006(dazhou4) gid=1004(dazhou3) 组=1004(dazhou3),1000(dazhou),1001(user1)
[root@dazhou ~]#
3.5 passwd 密码
建议更改规则:
1.长度大于10个字符
2.大小写字母 数字以及特殊字符
3.不规则
4不使用姓名 电话 生日 公司名字等
passwd 直接更改root密码
[root@dazhou ~]# passwd
更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@dazhou ~]#
passwd 用户名 更改指定用户密码
[root@dazhou ~]# passwd dazhou
更改用户 dazhou 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@dazhou ~]#
tail /etc/passwd
!! 空密码 不能登录
* 密码锁定 不能登录
! 锁定状态
[root@dazhou ~]# tail /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
dazhou:x:1000:1000::/home/dazhou:/bin/bash
xiaoli:x:1001:1001::/home/xiaoli:/bin/bash
[root@dazhou ~]#
用户锁定
passwd -l 用户 锁定用户
usermod -L 用户 也是锁定用户(区别shadow内一个!)
[root@dazhou ~]# passwd -l dazhou (usermod -L dazhou)
锁定用户 dazhou 的密码 。
passwd: 操作成功
[root@dazhou ~]# tail /etc/shadow
ftp:*:17834:0:99999:7:::
nobody:*:17834:0:99999:7:::
systemd-network:!!:17969::::::
dbus:!!:17969::::::
polkitd:!!:17969::::::
sshd:!!:17969::::::
postfix:!!:17969::::::
chrony:!!:17969::::::
dazhou:!!$6$oYLcPdDm$XZdsd7v2PTRbKVX1TF6A85Xp5oOADVl4lGRQwkqIIxXRcdgUwhr6sJWEDcvGLxCFbLCJ3iJNXws4TIG8401Aj1:17976:0:99999:7:::
xiaoli:!!:17973:0:99999:7:::
[root@dazhou ~]#
用户解锁
passwd -u 用户 解锁用户
usermod -U 用户 也是解锁用户
[root@dazhou ~]# passwd -u dazhou (usermod -U dazhou)
解锁用户 dazhou 的密码。
passwd: 操作成功
[root@dazhou ~]# tail /etc/shadow
ftp:*:17834:0:99999:7:::
nobody:*:17834:0:99999:7:::
systemd-network:!!:17969::::::
dbus:!!:17969::::::
polkitd:!!:17969::::::
sshd:!!:17969::::::
postfix:!!:17969::::::
chrony:!!:17969::::::
dazhou:$6$oYLcPdDm$XZdsd7v2PTRbKVX1TF6A85Xp5oOADVl4lGRQwkqIIxXRcdgUwhr6sJWEDcvGLxCFbLCJ3iJNXws4TIG8401Aj1:17976:0:99999:7:::
xiaoli:!!:17973:0:99999:7:::
[root@dazhou ~]#
明文更改密码
passwd --stdin 用户 明文 更改用户密码
[root@dazhou ~]# passwd --stdin dazhou
更改用户 dazhou 的密码 。
zaz110
passwd:所有的身份验证令牌已经成功更新。
[root@dazhou ~]#
shell格式更改示例
echo ''123123'' | passwd --stdin 用户 shell格式一句话更改账户密码
[root@dazhou ~]# echo "zal110" |passwd --stdin dazhou
更改用户 dazhou 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@dazhou ~]#
3.6 mkpasswd 密码生成 工具
yum install -y expect 安装包
[root@dazhou ~]# mkpasswd
_ig2FY6dl
[root@dazhou ~]# mkpasswd -l 13
PogXlyi8"lae7
[root@dazhou ~]# mkpasswd -l 13 -s 3
$b5hg2Jd;Co,m
[root@dazhou ~]# mkpasswd -l 13 -s 0
tJe0fjAput4tj
-l 长度个数
-s 特殊符号
实用
批量生成100个用户密码
3.7 su命令
切换用户
su - 用户名 切换用户
[root@dazhou ~]# su - dazhou
[dazhou@dazhou ~]$
su - -c “xxx” 用户名 用指定用户的身份去执行某条命令
[root@dazhou ~]# su - -c "touch /tmp/dahou.111" dazhou
[root@dazhou ~]# ll /tmp/
总用量 4
-rw-rw-r--. 1 dazhou dazhou 0 3月 22 11:18 dahou.111
drw-r--r--. 2 dazhou xiaoli 32 3月 18 13:22 dazhou1
drwxr-xr-x. 3 root root 20 3月 18 12:16 dazhou2
drwxr-xr-x. 4 root root 52 3月 18 12:27 dazhou5
-rwx------. 1 root root 836 3月 14 19:34 ks-script-IJMr3S
drwx------. 3 root root 17 3月 15 08:21 systemd-private-157c75844fbb4137b91db636c05c1901-chronyd.service-0fude3
drwx------. 3 root root 17 3月 21 15:57 systemd-private-d28a488050344d589ce06c6b32d09b8b-chronyd.service-Bo80ly
drwx------. 2 root root 6 3月 14 13:13 vmware-root_5318-3100325330
drwx------. 2 root root 6 3月 21 15:57 vmware-root_5330-3124769351
drwx------. 2 root root 6 3月 14 15:59 vmware-root_5334-3133354946
drwx------. 2 root root 6 3月 14 15:54 vmware-root_5343-4147555858
drwx------. 2 root root 6 3月 15 08:21 vmware-root_5350-3099801066
drwx------. 2 root root 6 3月 14 13:51 vmware-root_5351-4147424820
drwx------. 2 root root 6 3月 18 10:42 vmware-root_5365-4122847654
drwx------. 2 root root 6 3月 14 20:24 vmware-root_5368-3100325363
-rw-------. 1 dazhou xiaoli 0 3月 14 19:27 yum.log
dazhou5 没有家目录
-bash-4 解决办法:
-
添加家目录 更改目录所有者 所属组信息
-
此时user5下的通配文件还是没有的
-
拷贝通配符到user下 更改文件所属主 所属组
示例操作步骤:
[root@dazhou ~]# su - dazhou5
su: 警告:无法更改到 /home/dazhou5 目录: 没有那个文件或目录
-bash-4.2$
-bash-4.2$ ^C
-bash-4.2$
-bash-4.2$ 登出
[root@dazhou ~]# id dazhou5
uid=1002(dazhou5) gid=1002(dazhou5) 组=1002(dazhou5)
[root@dazhou ~]# mkdir /home/dazhou5
[root@dazhou ~]# chown dazhou5:dazhou5 /home/dazhou5
[root@dazhou ~]# ls -la /etc/skel/
总用量 24
drwxr-xr-x. 2 root root 62 4月 11 2018 .
drwxr-xr-x. 74 root root 8192 3月 22 11:25 ..
-rw-r--r--. 1 root root 18 10月 31 01:07 .bash_logout
-rw-r--r--. 1 root root 193 10月 31 01:07 .bash_profile
-rw-r--r--. 1 root root 231 10月 31 01:07 .bashrc
[root@dazhou ~]# ls -la /home/dazhou5
总用量 0
drwxr-xr-x. 2 dazhou5 dazhou5 6 3月 22 11:27 .
drwxr-xr-x. 5 root root 49 3月 22 11:27 ..
[root@dazhou ~]# cp /etc/skel/.bash* /home/dazhou5
[root@dazhou ~]# chown -R dazhou5:dazhou5 !$
chown -R dazhou5:dazhou5 /home/dazhou5
[root@dazhou ~]# ls -la /home/dazhou5
总用量 12
drwxr-xr-x. 2 dazhou5 dazhou5 62 3月 22 11:29 .
drwxr-xr-x. 5 root root 49 3月 22 11:27 ..
-rw-r--r--. 1 dazhou5 dazhou5 18 3月 22 11:29 .bash_logout
-rw-r--r--. 1 dazhou5 dazhou5 193 3月 22 11:29 .bash_profile
-rw-r--r--. 1 dazhou5 dazhou5 231 3月 22 11:29 .bashrc
[root@dazhou ~]# su - dazhou5
上一次登录:五 3月 22 11:34:17 CST 2019pts/1 上
[dazhou5@dazhou ~]$
3.8 sudo
用户用法
让一个普通用户临时拥有root用户的身份
-
visudo 进入
-
添加下行命令 让dazhou用户拥有sudo 特权
第一个ALL指所有的主机 第二个ALL指获取哪个用户的身份 指设定可以使用的sudo的命令有哪些
99 ## Allow root to run any commands anywhere
100 root ALL=(ALL) ALL
101 dazhou ALL=(ALL) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
102
主机别名 用户别名 命令别名 (对应101行代码)
命令别名使用
命令别名使用对应101行
xiaoli用户不需要输入密码对应102行
99 ## Allow root to run any commands anywhere
100 root ALL=(ALL) ALL
101 dazhou ALL=(ALL) DAZHOU_CMD
102 xiaoli ALL=(ALL) NOPASSWD:/usr/bin/ls, /usr/bin/mv, /usr/bin/cat
103
命令:sudo 绝对路径命令 用户
第一次使用需要输入密码 之后不需要
用户组的用法 使用户组里的用户都拥有sudo的权利
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
:set nu 在文件里查看行数
1 ## Sudoers allows particular users to run various commands as
2 ## the root user, without needing the root password.
3 ##
4 ## Examples are provided at the bottom of the file for collections
5 ## of related commands, which can then be delegated out to particular
6 ## users or groups.
7 ##
8 ## This file must be edited with the 'visudo' command.
9
10 ## Host Aliases
11 ## Groups of machines. You may prefer to use hostnames (perhaps using
12 ## wildcards for entire domains) or IP addresses instead.
13 # Host_Alias FILESERVERS = fs1, fs2
14 # Host_Alias MAILSERVERS = smtp, smtp2
15
16 ## User Aliases
17 ## These aren't often necessary, as you can use regular groups
18 ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname
19 ## rather than USERALIAS
20 # User_Alias ADMINS = jsmith, mikem
21
22
23 ## Command Aliases
24 ## These are groups of related commands...
3.9 不允许root远程登录linux
操作步骤:
-
编辑/etc/ssh/sshd_config
-
搜索Root字符
-
不允许root用户远程登录
-
重启sshd服务
1. [root@dazhou ~]# vi /etc/ssh/sshd_config
2. /Root
3. # Authentication:
#LoginGraceTime 2m
#PermitRootLogin yes--改为--no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
4. [root@dazhou ~]# systemctl restart sshd.service
课堂笔记
- 用户管理 工作中体现
创建用户
针对文件 目录 属主属组
shell 家目录 - usermod -L一个! 和passwd -l 俩个!! 区别
- sudo
root ALL=(ALL)
root(用户.、别名 、组) ALL(本机ip、主机名、ip端)=(ALL) (用户、别名(取谁的权限)) - sudo 高级配置
http://www.jianshu.com/p/51338e41abb7
sudo -l 查看用户在主机上允许和禁止运行的命令 - https://linux.cn/article-8313-1.html