linux学习--用户和组的管理

与linux用户和组相关的命令

新建用户

1
2
# useradd feng 		//新建feng用户
# passwd feng //修改feng的密码

新建组

1
# groupadd test		//新建test组

更改用户属性–usermod

1
2
3
4
5
6
7
8
# usermod feng -d <登入目录>	//修改用户登陆时的目录
# usermod feng -e <有效时期> //修改帐号的有效时期
# usermod feng -f <缓冲天数> //修改在密码过期后多少天即关闭帐号
# usermod feng -g <群组> //修改用户所在的群组
# usermod feng -L //锁定用户密码,使密码无效
# usermod feng -s <shell> //修改用户登如后所使用的shell
# usermod feng -u <uid> //修改用户ID
# usermod feng -U //解除密码锁定

切换用户登陆shell:su

1
2
# su -username   //从超级用户切换到其他普通用户是不需要密码的
//普通用户切换到其他用户时需要输入密码验证。

删除用户 : userdel

1
2
3
# userdel username 	//只会删除用户本身
# userdel -r username //将linux下的用户测定删除干净
//包括家目录/home/username和邮件池/var/mail/username

与linux用户和组相关的文件

1.在linux操作系统中,对用户的管理是以文件形式存在的,与用户相关的主要包括以下几个文件

1
2
3
4
5
/etc/passwd		//存储用户的信息
/etc/group //存储与组相关的信息
/etc/shadow //用户的密码信息
/etc/gshadow //组的密码的信息
/home/username //普通用户的加目录

/etc/passwd

这里存储了linux系统的帐号信息,每一行代表着一个帐号.如下
root:x:0:0:rot:/root:/bin/bash
每一行包括有7个部分,他们之间由:分隔。

1
2
3
4
5
6
1):用户名
2):密码(x表示密码存在/etc/shadow文件中)
3):UID用户标识
4):GID组标识
6):开始目录
7):登陆使用的shell,就是对登陆命令进行解析的工具

/etc/group

/etc/group文件中存放这用户组的信息,一种有四列。中间年用:分隔
Group_name:Passwd:Group_ID:User_list

1
2
3
4
5
6
1)Group_name: 用户组的名称
2)Passwd:用户组密码,和passwd文件一样,如果为x,密码存放在/etc/gshadow
3)Group_ID:用户组ID,简称GID.GID用于标识一个组,和UID一样,应保持GID唯一性
4)User_list:用户组类表,每个用户用逗号分隔。本子段可以为空。
//如果一个用户属于/etc/passwd中所指定的某个组,但没有出现在/etc/passwd
//应该以/etc/passwd文件中的设置为准

/etc/shadow

1
2
3
4
5
6
7
8
9
1)帐号名称
2)密码
3)最近更改密码的日期
4)密码不可被更改的天数
5)密码需要重新更改的天数
6)密码快到达更改期限提醒的天数
7)密码过期的恕限时间
8)帐号失效日期
9)保留:

/home/username/

用户的加目录,包括登陆shell的预读信息,桌面,文档等相关的目录

/var/mail/usrname

对用户所发送的邮件都存储在/var/mail目录下:

1
# mail 用户名 		//给用户发送邮件,用.来结束编辑

创建用户时的参考文件

1
2
3
/etc/default/useradd	//用户的默认登陆shell,默认目录等等
/etc/login.defs //用于设置帐号限制(优先级低于shadow)
/etc/skel/* //linux用户的骨架文件(没有这些的话,shell提示会很空洞)

手动创建用户

1
2
3
4
5
6
7
8
/etc/passwd		//该文件下添加,UID,GID要和其他不一样
/etc/group //添加组的信息,GID和passwd下一样
/etc/shadow //密码暂时不设置
/etc/gshadow //组的密码信息
/home/username/ //创建家目录
/var/mail/usrname //添加邮件文件
/etc/skel/* //将该文件夹下所有文件复制到家目录
完成以上操作,一个用户就手动创建好了!!!

sudo

sudo是一个非常有用的工具,它允许系统管理员分配给用户一些合理的“权限”,
让他们执行只有超级用户或者其他特许管理员才能执行的任务,这样就减少了root
的登陆次数和管理时间,也提高了系统的安全性
配置sudo的方法有两种
(1)直接编辑/etc/sudoers
(2)以root身份键入visudo(普通用户权限不够)
建议使用visudo来更改
1.系统可以自动检测更改的正确性,当错误地修改时,系统会提示错误行,系统会
一直提示错误,知道错误被修正
2.可以避免多个用户同时来修改,如果一方在修改,另一方使用会提示busy
配置sudo实例 //sudoer文件中会有使用的方法
(1)让普通用户具有超级用户权限(普通用户=root)

1
2
3
4
5
6
7
8
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
feng ALL=(ALL) ALL
//第一个ALL:网络中的主机
//第二个ALL:目标用户,以谁的身份去执行命令
//第三个ALL:指该授权用户可以执行的命令
//简称为"3W1C原则" who where whom command

(2)多个用户的设置(非同一个组群)

1
2
3
4
1.对于不同需求的用户:可以按照上面的方法来增加多行,每行对应一个用户
2.对于相同用户,可以设置多用户的别名
User_Alias UUU=user1,user2,user3...
//设置之后对UUU的权限设置,就相当于对user1,user2,user3..的权限设置

(3)多个命令定义为一个命令别名

1
2
3
4
5
6
7
把同一类型的操作定义成一个命令组,每次把这个命令组赋予给用户,方便visudo书写
Cmnd_Alias NETWORKING=/sbin/route,/sbin/ifconfig,/bin/ping,/sbin/dhclient,/usr/bin/net,/sbin/iptables,/usr/bin/rfcomm,/usr/bin/wvdial,/sbin/iwconfig.sbin/mii-tool
feng ALL=(root) NETWORKING
(4)让一个组群的所有用户拥有指定命令
```bash
##Allows members of the users group to mount and unmount the cdrom as a root
%feng ALL=/sbin/mount /mnt/cdrom,/sbin/umount /mnt/cdrom

```

Contents
  1. 1. 与linux用户和组相关的命令
    1. 1.1. 新建用户
    2. 1.2. 新建组
    3. 1.3. 更改用户属性–usermod
    4. 1.4. 切换用户登陆shell:su
    5. 1.5. 删除用户 : userdel
  2. 2. 与linux用户和组相关的文件
    1. 2.1. /etc/passwd
    2. 2.2. /etc/group
    3. 2.3. /etc/shadow
    4. 2.4. /home/username/
    5. 2.5. /var/mail/usrname
    6. 2.6. 创建用户时的参考文件
    7. 2.7. 手动创建用户
  3. 3. sudo
,