用户和组管理~命令

用户配置文件和密码配置文件:

配置文件:

用户文件:

[root[@ln](https://my.oschina.net/lina) ~]# 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
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
lan:x:1000:1002::/home/lan:/bin/bash
opo:x:1001:1003::/home/opo:/bin/bash
[root[@ln](https://my.oschina.net/lina) ~]#

新增用户会直接在文件末尾自动生成一行,详情可见上列代码末尾2行,以:分割为7段,详解如下。

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

用户名:login_name
口令:  早期存储用户密码,但由于安全性,密码都不存储这里了,现在只存放一个特殊的字符,例如“x”或者“*”。
用户标识号: UID  
组标识号:  GID
注释性描述: 记录用户的一些信息. 
主目录:    用户自己的家目录
登录shell:Shell是用户与Linux系统之间的接口,不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/bash。 /sbin/nologin  代表无法登录

密码配置文件:

[root[@ln](https://my.oschina.net/lina) ~]# cat /etc/shadow
root:$6$c3Vq42CM$BqLRAlJjVaH2O0rC.GwEhfNcuKrA.9/xPpmIY9GIWy.WZM2Q95Z1ohVNmlFdiaVTjuS3BmExEgWOpfbBTPdXd1:17657:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
lp:*:17110:0:99999:7:::
sync:*:17110:0:99999:7:::
shutdown:*:17110:0:99999:7:::
halt:*:17110:0:99999:7:::
mail:*:17110:0:99999:7:::
operator:*:17110:0:99999:7:::
games:*:17110:0:99999:7:::
ftp:*:17110:0:99999:7:::
nobody:*:17110:0:99999:7:::
systemd-network:!!:17654::::::
dbus:!!:17654::::::
polkitd:!!:17654::::::
postfix:!!:17654::::::
chrony:!!:17654::::::
sshd:!!:17654::::::
apache:!!:17654::::::
lan:!!:17664:0:99999:7:::
opo:!!:17664:0:99999:7:::
[root[@ln](https://my.oschina.net/lina) ~]#

/etc/shadow 为密码配置文件,同样由若干个字段组成,字段之间用“:”隔开,详解如下。

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

登录名:login_name
加密口令:用户密码,加密形式。同样密码,root与普通用户加密狗方式不一样。
最后一次修改时间:从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
最小时间间隔:指的是两次修改口令之间所需的最小天数。
最大时间间隔:指的是口令保持有效的最大天数。
警告时间:字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
不活动时间:表示的是用户没有登录活动但账号仍能保持有效的最大天数。
失效时间:字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
标志:保留字段,目前无含义

用户组管理:

[root[@ln](https://my.oschina.net/lina) ~]# 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:
input:x:998:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:997:
postdrop:x:90:
postfix:x:89:
chrony:x:996:
sshd:x:74:
apache:x:48:
user1:x:1000:
user2:x:1001:
lan:x:1002:
opo:x:1003:


[root@ln ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
disk:::
lp:::
mem:::
kmem:::
wheel:::
cdrom:::
mail:::postfix
man:::
dialout:::
floppy:::
games:::
tape:::
video:::
ftp:::
lock:::
audio:::
nobody:::
users:::
utmp:!::
utempter:!::
ssh_keys:!::
input:!::
systemd-journal:!::
systemd-network:!::
dbus:!::
polkitd:!::
postdrop:!::
postfix:!::
chrony:!::
sshd:!::
apache:!::
user1:!::
user2:!::
lan:!::
opo:!::
[root@ln ~]# 

查看所有组文件 及 组密码文件

这些带 '-' 的文件是源文件的备份文件.为防止误删,可恢复。

[root@ln ~]# ls /etc/group
group   group-  
[root@ln ~]# ls /etc/gshadow
gshadow   gshadow-  
[root@ln ~]#

组命令操作:

** groupadd: 新建一个组 **

-g 参数: 自定义组id

groupdel:删除一个组

[root@ln ~]# groupadd ln1
[root@ln ~]# tail -n1 /etc/group
ln1:x:1004:

[root@ln ~]# groupadd -g 1234 ln2
[root@ln ~]# tail -n3 /etc/group
opo:x:1003:
ln1:x:1004:
ln2:x:1234:

[root@ln ~]# groupdel ln1
[root@ln ~]# tail -n3 /etc/group
lan:x:1002:
opo:x:1003:
ln2:x:1234:

[root@ln ~]# groupdel lan
groupdel:不能移除用户“lan”的主组
[root@ln ~]# 

由于lan组有一个用户lan存在。所以无法直接删除组

用户管理:

useradd 创建一个用户

[root@ln ~]# useradd user99
[root@ln ~]# tail -n3 /etc/passwd
lan:x:1000:1002::/home/lan:/bin/bash
opo:x:1001:1003::/home/opo:/bin/bash
user99:x:1002:1235::/home/user99:/bin/bash
[root@ln ~]#

指定 uid 和gid 创建用户

[root@ln ~]# useradd -u 1111 -g 1234 user98
[root@ln ~]# tail -n3 /etc/passwd
opo:x:1001:1003::/home/opo:/bin/bash
user99:x:1002:1235::/home/user99:/bin/bash
user98:x:1111:1234::/home/user98:/bin/bash
[root@ln ~]# 

指定用户 家目录 和 登录shell

[root@ln ~]# useradd -d /home/jkl -s /sbin/nologin user96
[root@ln ~]# tail -n3 /etc/passwd
user98:x:1111:1234::/home/user98:/bin/bash
user97:x:1112:1112::/home/user97:/sbin/nologin
user96:x:1113:1113::/home/jkl:/sbin/nologin
[root@ln ~]# 

新建用户,但不创建用户的家目录

[root@ln ~]# useradd -M user93
[root@ln ~]# ls /home/
jkl  lan  opo  user97  user98  user99
[root@ln ~]# 

创建用户时不指定UID和GID的话,UID是默认由上个用户的UID往下自增一位。GID则无序。如下

[root@ln ~]# tail -n3 /etc/passwd
user93:x:1114:1114::/home/user93:/bin/bash
user95:x:1115:1115::/home/user95:/bin/bash
user94:x:1116:1234::/home/user94:/bin/bash
[root@ln ~]# useradd user92
[root@ln ~]# tail -n3 /etc/passwd
user95:x:1115:1115::/home/user95:/bin/bash
user94:x:1116:1234::/home/user94:/bin/bash
user92:x:1117:1117::/home/user92:/bin/bash
[root@ln ~]# 

userdel 删除用户:

[root@ln ~]# userdel user92
[root@ln ~]# tail -n3 /etc/passwd
user93:x:1114:1114::/home/user93:/bin/bash
user95:x:1115:1115::/home/user95:/bin/bash
user94:x:1116:1234::/home/user94:/bin/bash
[root@ln ~]# ls /home/
jkl  lan  opo  user92  user94  user95  user97  user98  user99
[root@ln ~]# 

不加参数  默认只删除用户,不会删除家目录。

userdel -r 删除用户 包括家目录:

[root@ln ~]# userdel -r user94
[root@ln ~]# ls /home/
jkl  lan  opo  user92  user95  user97  user98  user99
[root@ln ~]# 

usermod命令:

在命令行界面输入 usermod 即可看到usermod所有参数及解释
[root@ln ~]# usermod
用法:usermod [选项] 登录

选项:
  -c, --comment 注释            GECOS 字段的新值
  -d, --home HOME_DIR           用户的新主目录
  -e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
  -f, --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态
  -g, --gid GROUP               强制使用 GROUP 为新主组
  -G, --groups GROUPS           新的附加组列表 GROUPS
  -a, --append GROUP            将用户追加至上边 -G 中提到的附加组中,
                                并不从其它组中删除此用户
  -h, --help                    显示此帮助信息并推出
  -l, --login LOGIN             新的登录名称
  -L, --lock                    锁定用户帐号
  -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)
  -o, --non-unique              允许使用重复的(非唯一的) UID
  -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码
  -R, --root CHROOT_DIR         chroot 到的目录
  -s, --shell SHELL             该用户帐号的新登录 shell
  -u, --uid UID                 用户帐号的新 UID
  -U, --unlock                  解锁用户帐号
  -Z, --selinux-user  SEUSER       用户账户的新 SELinux 用户映射

[root@ln ~]# 

修改用户的 uid和gid

[root@ln ~]# tail -n3 /etc/passwd
user96:x:1113:1113::/home/jkl:/sbin/nologin
user93:x:1114:1114::/home/user93:/bin/bash
user95:x:1115:1115::/home/user95:/bin/bash
[root@ln ~]# usermod -u 2333 -g 1234 user95
[root@ln ~]# tail -n3 /etc/passwd
user96:x:1113:1113::/home/jkl:/sbin/nologin
user93:x:1114:1114::/home/user93:/bin/bash
user95:x:2333:1234::/home/user95:/bin/bash
[root@ln ~]# 

增加附加组:

[root@ln ~]# usermod -G 1113 user95
[root@ln ~]# id user95
uid=2333(user95) gid=1234(ln2) 组=1234(ln2),1113(user96)
[root@ln ~]# 

锁定用户:

[root@ln ~]# usermod -L user95
[root@ln ~]# tail -n3 /etc/shadow
user96:!!:17664:0:99999:7:::
user93:!!:17664:0:99999:7:::
user95:!$6$3z6AgaJ6$LYx05vhclSp71zK8FygfhKdZro48xGcM5HKizoBhZnlC37v8BN6oO/DZHgppBzAnQV0FfF6gWwFuK10YppMtO1:17664:0:99999:7:::
[root@ln ~]# 
可以看见 user95:后面,密码前面有个感叹号。锁定标识

解锁用户:

[root@ln ~]# tail -n 3 /etc/shadow
user96:!!:17664:0:99999:7:::
user93:$6$Mh1p6CBB$MC3ZqOlup0WUIWql07tfwdWiYikfwb6QH/6h2V2RglaXG5axF6mMEonnyS/JsUW10tO.w7xcWBibxEXPCSlxX0:17664:0:99999:7:::
user95:$6$3z6AgaJ6$LYx05vhclSp71zK8FygfhKdZro48xGcM5HKizoBhZnlC37v8BN6oO/DZHgppBzAnQV0FfF6gWwFuK10YppMtO1:17664:0:99999:7:::
[root@ln ~]# 

用户密码管理:

passwd 修改密码,后接用户名

[root@ln ~]# passwd user93
更改用户 user93 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 它基于字典单词
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@ln ~]# tail -n 3 /etc/shadow
user96:!!:17664:0:99999:7:::
user93:$6$Mh1p6CBB$MC3ZqOlup0WUIWql07tfwdWiYikfwb6QH/6h2V2RglaXG5axF6mMEonnyS/JsUW10tO.w7xcWBibxEXPCSlxX0:17664:0:99999:7:::
user95:!$6$3z6AgaJ6$LYx05vhclSp71zK8FygfhKdZro48xGcM5HKizoBhZnlC37v8BN6oO/DZHgppBzAnQV0FfF6gWwFuK10YppMtO1:17664:0:99999:7:::
[root@ln ~]# 

passwd -l 锁定用户密码

[root@ln ~]# passwd -l user95
锁定用户 user95 的密码 。
passwd: 操作成功
[root@ln ~]# tail -n 3 /etc/shadow
user96:!!:17664:0:99999:7:::
user93:$6$Mh1p6CBB$MC3ZqOlup0WUIWql07tfwdWiYikfwb6QH/6h2V2RglaXG5axF6mMEonnyS/JsUW10tO.w7xcWBibxEXPCSlxX0:17664:0:99999:7:::
user95:!!$6$3z6AgaJ6$LYx05vhclSp71zK8FygfhKdZro48xGcM5HKizoBhZnlC37v8BN6oO/DZHgppBzAnQV0FfF6gWwFuK10YppMtO1:17664:0:99999:7:::

passwd -u 解锁用户密码

[root@ln ~]# passwd -u user95
解锁用户 user95 的密码。
passwd: 操作成功
[root@ln ~]# tail -n 3 /etc/shadow
user96:!!:17664:0:99999:7:::
user93:$6$Mh1p6CBB$MC3ZqOlup0WUIWql07tfwdWiYikfwb6QH/6h2V2RglaXG5axF6mMEonnyS/JsUW10tO.w7xcWBibxEXPCSlxX0:17664:0:99999:7:::
user95:$6$3z6AgaJ6$LYx05vhclSp71zK8FygfhKdZro48xGcM5HKizoBhZnlC37v8BN6oO/DZHgppBzAnQV0FfF6gWwFuK10YppMtO1:17664:0:99999:7:::
[root@ln ~]# 

passwd --stdin 明文显示密码,且无第二次验证

[root@ln ~]# passwd --stdin user95
更改用户 user95 的密码 。
123456
passwd:所有的身份验证令牌已经成功更新。
[root@ln ~]#

echo 方式修改密码

[root@ln ~]# echo -e '123qwe\n123qwe' | passwd user95
更改用户 user95 的密码 。
新的 密码:无效的密码: 密码少于 7 个字符
重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。
[root@ln ~]# 

如果不加-e参数,就如下一样,换行符显示不出来,当做普通字符处理。
[root@ln ~]# echo -e '123qwe\n123qwe'
123qwe
123qwe
[root@ln ~]# echo '123qwe\n123qwe'
123qwe\n123qwe
[root@ln ~]# 

mkpasswd命令:

运行前 需要安装包: yum install -y expect

mkpasswd 默认生成 大小写字母,数字和特殊符号。

[root@ln ~]# mkpasswd
sHom@w00N
[root@ln ~]# 

mkpasswd -l 代表 长度为10 -s 代表特殊字符的数量

[root@ln ~]# mkpasswd -l 10 -s 2
m61yeS+-Ez
[root@ln ~]# mkpasswd -l 10 -s 0
giqCD4dw7d
[root@ln ~]# 

SU命令:

su 用户名 切换用户

[root@ln ~]# su user95
[user95@ln root]$ pwd
/root
[user95@ln root]$
但目录还在root下。不在user95自己家目录下。

这时 就需要用 su - 切换

su - 切换用户 并且到用户的家目录下

[root@ln ~]# su - user95
上一次登录:一 5月 14 07:52:53 CST 2018pts/0 上
[user95@ln ~]$ pwd
/home/user95
[user95@ln ~]$ 

以user95这个用户 去执行 touch文件的命令

[root@ln ~]# su - -c 'touch /tmp/user95.txt' user95
[root@ln ~]# ls -lt /tmp/ | head
总用量 124
-rw-r--r--. 1 user95 ln2       0 5月  14 07:58 user95.txt
lrwxrwxrwx. 1 root   root      7 5月  13 19:56 ln_yum.log -> yum.log
drwxr-xr-x. 2 root   root      6 5月  13 19:47 lan
-rwxrwxrwx. 1 lan    lan      26 5月  13 19:14 lan.txt
-rwxr-xr-x. 1 root   root 117656 5月  13 08:06 ls2
drwx------. 3 root   root     17 5月  13 07:54 systemd-private-86d6b6074f844b27b64a378f2dc6fc4a-httpd.service-LFVGOT
drwx------. 3 root   root     17 5月  13 07:53 systemd-private-86d6b6074f844b27b64a378f2dc6fc4a-chronyd.service-xAVLoC
drwx------. 3 root   root     17 5月   9 22:18 systemd-private-9db65904aca04aaea4321df4ebed6f2d-httpd.service-H48yxK
drwx------. 3 root   root     17 5月   9 22:18 systemd-private-9db65904aca04aaea4321df4ebed6f2d-chronyd.service-injaJT
[root@ln ~]# id user95
uid=2333(user95) gid=1234(ln2) 组=1234(ln2),1113(user96)
[root@ln ~]# 

[user95@ln root]$ su - user93
密码:
最后一次失败的登录:一 5月 14 08:03:44 CST 2018pts/0 上
最有一次成功登录后有 1 次失败的登录尝试。
su: 警告:无法更改到 /home/user93 目录: 没有那个文件或目录
-bash-4.2$ 

如出现上面代码的样式。代表你这个用户创建时 是 使用了-M参数,没有家目录。所以不行,解决方法如下:

[root@ln ~]# mkdir /home/user93
[root@ln ~]# chown user93:user93 /home/user93
[root@ln ~]# su - user93
上一次登录:一 5月 14 08:04:45 CST 2018pts/0 上
-bash-4.2$ pwd
/home/user93
-bash-4.2$ ls -la
总用量 0
drwxr-xr-x.  2 user93 user93   6 5月  14 08:07 .
drwxr-xr-x. 11 root   root   123 5月  14 08:07 ..
-bash-4.2$ exit
登出
[root@ln ~]# 

如上,目录已经创建好了,但是还是不行。原因就是没有配置文件。需如下操作:

[root@ln ~]# ls -la /etc/skel/
总用量 24
drwxr-xr-x.  2 root root   62 5月   4 06:13 .
drwxr-xr-x. 74 root root 8192 5月  14 08:04 ..
-rw-r--r--.  1 root root   18 8月   3 2017 .bash_logout
-rw-r--r--.  1 root root  193 8月   3 2017 .bash_profile
-rw-r--r--.  1 root root  231 8月   3 2017 .bashrc
[root@ln ~]# cp /etc/skel/.bash* /home/user93
[root@ln ~]# chown -R user93:user93 /home/user93/
[root@ln ~]# su - user93
上一次登录:一 5月 14 08:08:25 CST 2018pts/0 上
[user93@ln ~]$ 

如上可知,需去/etc/skel/目录下把一些配置文件拷贝到user93的家目录上去。然后在修改目录及其子文件的属主和属组,最后切换用户就会成功了。

SUDO 命令:

让普通用户去执行root的权限的命令

命令: visudo

使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。

直接输入命令回车。
进入内容框后,找到下面这一行
Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

在root下面输入你自定义的命令

配置文件需要修改的部分截图 红框内是自己增加的部分 比如我输入的是 给user93 这个用户临时使用root权限的命令是 ls cat mv 以逗号分隔,且必须是绝对路径。

设置好了之后,切换user93用户。测试命令。

[root@ln ~]# su - user93
上一次登录:一 5月 14 08:26:57 CST 2018pts/0 上
[user93@ln ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[user93@ln ~]$ sudo /usr/bin/ls /root/

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] user93 的密码:
2.txt_rlj  2.txt_ylj  default  qwe  zaq  zxc
[user93@ln ~]$ 

输入user93密码后就可以查询到结果了。第一次查询需要输密码

[user93@ln ~]$ cat /root/2.txt_ylj
cat: /root/2.txt_ylj: 权限不够
[user93@ln ~]$ sudo /usr/bin/cat /root/2.txt_ylj
root:x:0:0:root:/root:/bin/bash
as
bin:x:1:1:bin:/bin:/sbin/nologin
[user93@ln ~]$ 
cat 查询

不输入密码查询 加上nopasswd后就可以不输入密码查询了

[root@ln ~]# su - user95
上一次登录:一 5月 14 08:39:20 CST 2018pts/0 上
[user95@ln ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[user95@ln ~]$ 
[user95@ln ~]$ sudo /usr/bin/ls /root/
2.txt_rlj  2.txt_ylj  default  qwe  zaq  zxc
[user95@ln ~]$ 

限制root远程登录

进入 /etc/ssh/sshd_config 配置文件里

修改为图下红框内的内容。 原先为yes 我修改为no,在去掉首部的 # 就行

修改完成后重启服务

在重新开启一个远程会话连接,就会提示拒绝秘钥,无法登录。

选择password方式输入密码之后会弹出窗口如下:

这个时候Root就无法登录了,现在去尝试着用puty登录下普通用户能否登录

由于原先做了配置所以,可以直接切换回root用户

sudo su - 原因配置图如下

在visudo里配置了个别名,别名里有个用户是user95,LAN这个别名在下图中获取了 su权限。所以user95这个用户可以直接使用su命令切换用户


转载于:https://my.oschina.net/u/3851489/blog/1815107

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值