增加和删除用户组

[root@daixuan ~]# groupadd grp1               增加组grp1
[root@daixuan ~]# groupadd -g 512 grp2    增加组grp2,指定组id=512
[root@daixuan ~]# tail /etc/group                 查看组
grp1:x:501:                                                   组名,密码,组id
grp2:x:512:                                              
[root@daixuan ~]# groupadd grp3                增加组grp3,id从513开始,不从502开始
[root@daixuan ~]# !tail
grp1:x:501:
grp2:x:512:
grp3:x:513:
[root@daixuan ~]# groupdel grp3                 删除组
[root@daixuan ~]# useradd -g grp2 user      添加user用户到组grp2中
[root@daixuan ~]# groupdel grp2           删除grp2组失败,原因是grp2组中存在用户userusergroupdel: cannot remove the primary group of user 'user'

增加和删除用户
[root@daixuan ~]# useradd daixuan123
[root@daixuan ~]# tail /etc/passwd
daixuan123:x:501:513::/home/daixuan123:/bin/bash

[root@daixuan ~]# useradd -u 505 -g 512 user1<==># useradd -u 505 -g grp2 user1  useradd使用-u设置uid,使用-g设置gid
[root@daixuan ~]# tail -2 /etc/passwd
daixuan:x:500:500:daixuan:/home/daixuan:/bin/bash
user1:x:505:512::/home/user1:/bin/bash         gid=512指向grp2
[root@daixuan ~]# id user1                              使用id user1查看user1属性
uid=505(user1) gid=512(grp2) 组=512(grp2)

[root@daixuan ~]# useradd -u 508 -g 500 -d /home/user2test -s /bin/bash user2          -d指定用户家目录,-s指定用户的bash
[root@daixuan ~]# useradd -u 508 -g 500 -d /home/user3test -s /sbin/nologin user3
useradd: UID 508 is not unique
[root@daixuan ~]# useradd -u 509 -g 500 -d /home/user3test -s /sbin/nologin user3
[root@daixuan ~]# tail -3 /etc/passwd
user1:x:505:512::/home/user1:/bin/bash
user2:x:508:500::/home/user2test:/bin/bash
user3:x:509:500::/home/user3test:/sbin/nologin

[root@daixuan ~]# useradd -M -s /sbin/nologin user4    在创建user4用户时,-M选项不创建用户的家目录
[root@daixuan ~]# ls -ld /home/user4
ls: 无法访问/home/user4: 没有那个文件或目录[root@daixuan ~]# tail -4 /etc/passwd   user4:x:510:510::/home/user4:/sbin/nologin     -M 就是不创建那个目录,但不能说它没有家目录,仅仅是不建立而已。

[root@daixuan ~]# userdel -r user2                使用-r,删除user2用户的同时,删除user2用户的家目录/home/user2,
[root@daixuan ~]# ls -ld /home/user2
ls: 无法访问/home/user2: 没有那个文件或目录

拓展:新建用户user1的时候,指定属组为users,有哪些方法?
A useradd -g users user1
B useradd user1 -g users
C adduser -g users user1


usermod 修改用户属性
[root@daixuan ~]# usermod -u -g -G -s -d  修改用户的uid,gid,拓展组,bash shell,家目录
[root@daixuan ~]# usermod -L daixuan123            lock锁定用户daixuan123
[root@daixuan ~]# usermod -U daixuan123           unlock解锁用户daixuan123
[root@daixuan ~]# useradd -u 506 -g 512 -G 513 user3   -G指定拓展组
[root@daixuan ~]# id user3
uid=506(user3) gid=512(grp2) 组=512(grp2),513(grp3)   grp3是user3在拓展组,可以删除grp3
[root@daixuan ~]# groupdel grp3
[root@daixuan ~]# groupdel grp2                                     grp2是daixuan123主组,不能删除grp2
groupdel: cannot remove the primary group of user 'daixuan123'  
修改用户密码passwd
[root@daixuan ~]# passwd
更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

[root@daixuan ~]# passwd daixuan
更改用户 daixuan 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

[root@daixuan ~]# yum install -y expect              安装mkpasswd命令使用expect包
使用mkpasswd随机生成密码,同时设置密码属性。
[root@daixuan ~]# mkpasswd -l 12 -s 0 -d 4 -C 5 -c 2   -l 密码长度;-s特殊字符0;-d 数字4;-C大写字母5;-c小写字母2
2nWOZC94d9yF

[root@daixuan ~]# passwd --stdin daixuan          --stbin明文更改用户daixuan密码
更改用户 daixuan 的密码 。
1991
passwd: 所有的身份验证令牌已经成功更新。
[root@daixuan ~]# echo "Dx199113" | passwd --stdin daixuan              将daixuan密码更改为Dx199113
更改用户 daixuan 的密码 。
passwd: 所有的身份验证令牌已经成功更新。

[root@daixuan ~]# echo -e "123456\n123456" | passwd daixuan          将daixuan密码更改为123456,咱们在设置密码的时候,要让输入两次的
更改用户 daixuan 的密码 。
新的 密码:无效的密码: 过于简单化/系统化
无效的密码: 过于简单
重新输入新的 密码:passwd: 所有的身份验证令牌已经成功更新。

注:passwd daixuan  123456                 报错,太简单
echo "123456" | passwd --stbin daixuan 不会报错密码简单,成功修改密码
[root@daixuan ~]# passwd daixuan
更改用户 daixuan 的密码 。
新的 密码:
无效的密码: 过于简单化/系统化
无效的密码: 过于简单
重新输入新的 密码:

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

su切换用户
su daixuan 和su - daixuan  有没有符号“-” 差距很大,没有-” ,仍然在root目录和环境变量下,有-” ,切换到daixuan用户的环境变量下
[root@daixuan ~]# su daixuan 
[daixuan@daixuan root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[daixuan@daixuan root]$ pwd
/root
[daixuan@daixuan root]$ ls                       普通用户无法打开/root目录,如果是/home/daixuan目录,则可以打开。
ls: 无法打开目录.: 权限不够
[daixuan@daixuan root]$ exit
exit
[root@daixuan ~]# su -daixuan
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/daixuan/bin
[daixuan@daixuan ~]$ pwd
/home/daixuan

su的特殊用法
su目的不是切换用户,而是以daixuan这个用户的身份去执行某一条命令。
[root@daixuan ~]# su - -c "mkdir /tmp/1212123" daixuan      root切换为用户daixuan创建目录/tmp/1212123
[root@daixuan ~]# su - -c "ls -ld /tmp/1212123" daixuan
drwxrwxr-x 2 daixuan daixuan 4096 10月 26 23:49 /tmp/1212123    /tmp/1212123的属主和属组都是daixuan,而不是root

使用sudo临时获取root权限
[root@daixuan ~]# su - daixuan
[daixuan@daixuan ~]$ ls /root
ls: 无法打开目录/root: 权限不够
[root@daixuan ~]# visudo    分配用户daixuna无密码验证,具有使用/bin/ls命令的root权限,sudo配置文件为/etc/sudoers
daixuan ALL=(ALL)      NOPASSWD: /bin/ls  

daixuan  表示用户daixuan拥有了sudo的权利

ALL表示用户名,即daixuan切换到哪一个用户身份,ALL表示所有的用户

(ALL)表示允许任何地方登陆(本地、远程)可设置来源IP段、来源host;

NOPASSWD表示不用输入diaxuan密码,/bin/ls表示允许普通用户以root身份执行的命令,设置为ALL,例如:daixuan ALL=(ALL)  ALL表示允许所有命令。

[daixuan@daixuan ~]$ sudo -l
匹配此主机上 daixuan 的默认条目:
用户 daixuan 可以在该主机上运行以下命令: (root) /bin/ls, 
[daixuan@daixuan ~]$ sudo ls /root    此时用户daixuan可以查看root的家目录
111     123.txt  234              Documents           Music      test
1112    12.txt   abc              Downloads           Pictures   test.txt