与linux用户和组相关的命令
新建用户
1 | # useradd feng //新建feng用户 |
新建组
1 | # groupadd test //新建test组 |
更改用户属性–usermod
1 | # usermod feng -d <登入目录> //修改用户登陆时的目录 |
切换用户登陆shell:su
1 | # su -username //从超级用户切换到其他普通用户是不需要密码的 |
删除用户 : userdel
1 | # userdel 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
61):用户名
2):密码(x表示密码存在/etc/shadow文件中)
3):UID用户标识
4):GID组标识
6):开始目录
7):登陆使用的shell,就是对登陆命令进行解析的工具
/etc/group
/etc/group文件中存放这用户组的信息,一种有四列。中间年用:分隔
Group_name:Passwd:Group_ID:User_list1
2
3
4
5
61)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 | 1)帐号名称 |
/home/username/
用户的加目录,包括登陆shell的预读信息,桌面,文档等相关的目录
/var/mail/usrname
对用户所发送的邮件都存储在/var/mail目录下:1
# mail 用户名 //给用户发送邮件,用.来结束编辑
创建用户时的参考文件
1 | /etc/default/useradd //用户的默认登陆shell,默认目录等等 |
手动创建用户
1 | /etc/passwd //该文件下添加,UID,GID要和其他不一样 |
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
41.对于不同需求的用户:可以按照上面的方法来增加多行,每行对应一个用户
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
```