用户管理:
为什么要进行用户管理?
Linux 是一个可以实现多用户登陆的操作系统,允许多个用户同时登陆到系统上使用资源。系统根据账户来区分每个用户的文件、进程、任务,给每个用户提供特定的工作环境。
基本概念及相关文件:
用户组: 具有相同特征的用户的集合体
/root : root 的家目录
/home : 一般用户的家目录
/etc/passwd : 用户的账号文件
/etc/shadow : 用户的密码文件
/etc/group : 用户组的账号文件
/etc/gshadow : 用户组的密码文件
/etc/login.defs: 创建用户时参照的文件,里面设定了一些范围
查看基本用户的信息命令:
查看当前登录用户 : id
查看文件的属主和属组 : ll 或者 ls -l
查看运行进程的username : ps aux 第一列就是用户
Linux下的用户组分类:
用户分类:
root用户 ( 0) ,系统用户(也称伪用户) (1-999) ,普通用户(1000+)(centos7下,6下面是500+)《数字表示用户的UID》(UID,GID不能冲突)
组分类:
按照账户功能来分:root组(0) ,系统用户组(0-999),本地用户组(1000+)
还可分为(基本组,附加组,系统组)
Linux下的用户及组的创建于与删除等操作:
1.创建组: groupadd 选项 groupname
相关参数:
- -g 基本组id
- -o 允许添加一个使用非唯一gid的组
- -r 创建一个系统组
2.删除组: groupdel groupname
3.修改组: groupmod 选项 groupname
-g 修改新的组id
-o 与-g选项同时使用,可以使新gid与系统已有的用户组gid相同
-n 将用户组的名称修改为新名称
4.创建新用户:useradd 选项 username
- -c comment 指定一段注释性描述
- -d 目录,指定用户主目录,若目录不存在,则同时使用-m选项创建主目录
- -g 用户组,指定初始的用户基本组(必须存在)、
- -G 用户组,指定用户所属的附加组
- -s Shell文件,指定用户的登陆Shell
- eg: useradd zhang -s /sbin/nologin # 添加一个zhang 用户不用登陆
- -u 用户号,指定用户的用户号,若有-o选项,则可以重复使用其它用户的标识号。
5.删除用户: userdel username
6.修改用户信息: usermod 选项 username
- -c comment 修改注释性描述
- -d -m 参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去
- -e 账户的到期时间,格式为YYYY-MM-DD
- -g 变更所属基本用户组
- -G 变更所属的附加用户组
- -s 变更默认终端
- -u 修改用户的用户号
- -L 锁定用户禁止其登陆系统
- -U 解锁用户,允许其登录系统
7.为用户设置密码:
方法一: passwd username ---> Enter ----> password
方法二: echo “ 密码” | passwd --stdin username # 使用管道,前几篇可是说过的哦(这个B格多高的)
(普通用户只能修改自己密码,root可以改其他人密码且不需要老密码,root很NB吧,他可是拥有至高无上的权利,就相当于Windows中的管理员)
补充:
chage命令 是用来修改帐号和密码的有效期限。
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。 -M:密码保持有效的最大天数。 -w:用户密码到期前,提前收到警告信息的天数。 -E:帐号到期的日期。过了这天,此帐号将不可用。 -d:上一次更改的日期。 -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
为一般用户提权:
先说一个切换用户的命令: su
su 用户 : 一般用户切换到root用户,需要输入root的密码,而root用户切换至一般用户不需要密码,这就是因为root权限太高,是爷爷般的存在
root为一般用户提权: 相应的文件 /etc/sudoers , 一般用户在使用时需要在前面加上sudo (ubuntu 系统下很常见,一般都是普通用户,小编在centos下用惯了root用户)
授权规则:
Eg: student ALL=(root) /bin/chown,/bin/chmod
将这行加入到/etc/sudoers 的相应位置,表示授权给了student用户chown和chmod 的权限,就可以给文件进行权限设置了,前提是要加上sudo ,再输入一般命令
sudo的客户端应用
sudo -l:列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。
sudo -u 用户名 命令:以指定用户的身份执行命令。后面的用户是除root以外的,可以是用户名,也可以是UID。
sudo -k:清除存活期时间,下次再使用sudo时要再输入密码。
sudo -b 命令:在后台执行指定的命令。
sudo -p 提示语 <操作选项>:可以更改询问密码的提示语,其中%u会代换为使用者账号名称,%h会显示主机名称。