首页 > 代码库 > sudo 详解、用户以及组的创建删除。

sudo 详解、用户以及组的创建删除。

一、用户名文件。

root:x:0:0:root:/root:/bin/bash

共7部分。

1,用户名。

2,存放的是该帐号的口令,(密码)现存于/etc/shadpw/,所以现在用X表示。

3,代表用户标示号, uid

4,组 标示号,gid

5,注释说明。没有实际意义

6,用户的加目录。

7,用户的shell。

二、密码文件

user1:$6$X/dAMmCG$uLvF2l/Df/TgldEWVc7lL93bVxjKDpLStDWYcMD0DdN7a/VUwdl1PcEhYBOjTwOQd4JynfS/Vo53gwRJULW/j0:17090:0:99999:7:::

共9个字段

1,用户名。

2,用户密码。(加密了)

3,从1970年1月1日 到 上次更改密码的时间。 17090天

4,要过多少天才可以更改密码。默认是0.即不限制,

5,密码多少天后到期。即 在多少天内必须更改密码。默认9999

6,密码到期前的预警。设置为7,即密码到期前7天时发出警告。

7,账户失效期限。

8,账号的生命周期。

9,作为保留,没什么意义。

三、增加和删除用户以及组

#groupadd 组名

#groupadd -g 组名  设定改组的gid

#groupdel 组名    删除改组

#useradd 用户名  

#useradd -u 自定义 UID

#useradd -g 使其属于某个已存在的某个组,后面也可以跟组id,也可跟组名。

#useradd -d 自定义用户的家目录

#useradd -M 不建立家目录

#例如

#useradd -u510 -g 513 -M -s /sbin/nologin user11  (/sbin/noloogin ,这个账户不能登录)

#userdel 用户 删除用户。

#userdel -r 用户 删除账户时,连同家目录一起删除。

四、usermod 修改用户属性

#usermod -u 用户 修改uid

      -g    修改gid

      -G    添加扩展组(使某个用户属于多个组)

      -d    更改家目录

      -s    修改shell

      -L    锁定     -U 解锁

五、passwd修改用户密码。

#passwd 直接修改root用户的密码

#passwd user1 更改user1的密码

mapasswd 自动生成密码命令

安装;

#yum install -y expect

#mkpasswd 直接自动生成密码

#mkpasswd -l 12 -s 0 -d 3 

-l 12 ,表示长度12位。-s 指定特殊字符个数。 -d 指定数字的个数。

一条命令修改用户密码,比较适合用在shell脚本中。

#echo -e "密码"|passwd --stdin user1

六、su 切换用户

root用户登录时

#su user1 切换到user1

#su - user1 -c "touch /tmp/1.txt" 直接以某个用户的身份去执行一条命令,在脚本中比较合适。

user1登录时

#su 直接切换到 root用户。此时root用户的家目录与user1 一样。

#su - ,切换到 root 用户,此时目录为root账户的家目录。、

七、sudo详解。

使普通用户,利用sudo这个命,令去执行一个只有root用户才能执行的命令,只需要普通用户的密码。

安装命令。

#yum install -y visudo

#visudo

找到,root ALL=(ALL) ALL 

设置  user1 ALL=(root) NOPASSWD: /bin/ls,/bin/cat 

三部分,

 最左边,为用户名,指定哪个用户拥有sudo权利,

 中间,等号左边是用户名,即普通用户可以切换到哪个用户的身份,比如,user1 切换到 root

     等号右边括号内,指定用户名或主机IP

 最右边,设定可使用的命令,写入命令的绝对路径,多个命令用分号隔开。

多个用户组设定

#visudo

找到 

## Allows people in group wheel to run all commands

%wheel  ALL=(ALL)       ALL

把#去掉,(前面加# 号,表示失效)。

然后在最后面输入

User_Alias USER_SU=user1,user2,user3

Cmnd_Alias SU=/bin/su

USER_SU ALL=(ALL) NOPASSWD: SU

保存退出。

此时可使用user1,2,3 这3个账户登录Linux,执行命令"sudo su -" ,切换到root,获取root账户的所有权利,且不需要输入user的密码。


sudo 详解、用户以及组的创建删除。