02、用户管理
用户分类:
按系统分:
根用户(管理员) 用户id为0,如root
系统用户
用户id在 1-499 之间
这些用户主要是系统内置的一些程序或服务使用的
普通用户 管理员创建的,使用、登录系统的用户
用户id 一般从 500 开始
按作用分:
管理员
普通成员
用户识别不是靠用户名的,而是用户id (uid)
与用户和组相关的配置文件
/etc/passwd 帐号 /etc/shadow 密码 /etc/group 组名 /etc/gshadow 组密码 /etc/login.defs 帐号限制文件 /etc/default/useradd 新建用户的默认规则文件 /etc/skel 默认用户家目录模板
/etc/passwd 文件解释
root:x:0:0:root:/root:/bin/bash ....... tom:x:500:500::/home/tom:/bin/bash mary:x:501:501::/home/mary:/bin/bash 文件由冒号分隔成7段 第一段:用户名 第二段:密码,x 表示密码 放在 /etc/shadow为空表示登录不要密码也有把密码直接放在这里了 第三段:用户id 第四段:组id (主要组) 第五段:注释、描述 第六段:家目录 第七段:使用的shell, nologin是不能登录的
/etc/shadow文件解释
tom:$6$vDEz/2Mn $zVObUxy6QALb.8crTWB7JRsleXz56Un4Ia93ES6m8eaPcBjWUwThxo9wub/H2wESuwgFJUDu51GUwm3OUshQ.:15644:0:99999:7::: mary::15644:0:99999:7::: 第一段:用户名 第二段:密码 第三段:上次修改密码的时间(15644),表示的是距离1970年1月1日的天数 第四段:两次修改密码的最小间隔天数 第五段:密码的有效期 第七段:密码到期的多少天提示 第八段:帐号的过期时间,以距离1970年1月1日的天数来表示的 第九段:暂时未用
/etc/group文件解释
tom:x:500: mary:x:501: 第一段:组名(默认建一个用户后,会建一个同名的组) 第二段:组密码 第三段:组id(gid) 第四段:组成员
/etc/gshadow文件解释
tom:!:: mary:!:: 第一段:组名 第二段:组密码 第三段:组管理员 第四段:组成员
用户管理命令:
useradd 创建用户
option:
-g 指定gid (主要组,唯一的)
-G 指定要加入的组(可以有多个)
-s 使用的shell
例: useradd tom
注:建了用户后,会在用户的家目录下产生几个隐含的文件 .bash_profile .bashrc
这些文件是从/etc/skel 拷来的
groupadd 创建组
格式: groupadd [option] 组名
option:
-g 指定组的id(gid)
例:groupadd admin
gpasswd 管理组
[option]
-a 为组添加成员
-d 将成员删除
-A 指定组的管理员
-R 限制用户临时登录到组,只能组中的成员才可以使用本组身份
验证方法:
cat /etc/group
cat /etc/gshadow
id u1
id tom
id u2
id mary
指定一个组的管理员,然后用管理员再去加成员
useradd u4
gpasswd -A tom g1
su - tom
gpasswd -a u4 g1
newusers 根据一个配置文件创建用户
格式: newusers 文件名
[root@s100 test]# cat myfile uu:x:510:508::/home/uu:/bin/bash uu4:x:511:510::/home/uu4:/bin/bash [root@s100 test]# newusers myfil
passwd 设置用户密码
格式:passwd [用户名]
passwd 不加用户名,设置自己的密码,如果加了用户名就是设置其他用户的密码。另:新建的用户,如果没设置密码是不能登录的
passwd 的其它功能
-l 锁定帐号(这种锁定实际是在密码前加 !! )
-u 解锁
usermod 修改用户信息
option:
-l username 修改用户名
-g groupname 修改主要组
-G groupnames 修改用户加入的组
-u uid 修改uid
-s shell 修改其shell
userdel 删除用户
语法:userdel [-r] 用户名
id 查看用户和组信息
例:id
id mary id tom id u3
su 切换用户
su 用户名
或
su - 用户名
su - 这种方式会应用新用户的环境变量(即会对新用户进行初始化),如果没有 -
用户信息从上一个用户继承
如果再回到上一个用户,建议使用 exit ,而不是再次 su - ...
另,有时候,只想以某个用户的身份运行一些命令,那可以
su - username -c 'command'
例:su - mary -c 'echo $HOME'
groupmod 修改组信息
[option]
-g gid 修改组的id
-n group_name 修改组名
例:将组dept 改成 abc groupmod -n abc dept
groups 显示当前用户加入了哪些组
groups
newgrp 临时加入到一个组
格式:newgrp group_name
exit 退出
who 查看登录到服务器的用户
wall 发广播 wall 输入信息 ctrl + d 结束输入
write 给指定用户发消息
write mary
输入信息内容
ctrl + d 结束输入
mesg 查看设置是否接收信息
mesg y --接收
mesg n --不接收
权限
linux 中文件访问用户分类
u 属主
g 开放组
o 其它用户
a 所有用户
linux 文件目录的基本权限
r(4) 读
w(2) 写
x(1) 执行
基本权限对文件、目录的作用
r 对文件来讲,它可以看它的内容
对目录来讲,它可以看它下面有哪些文件和子目录(ls)
w 对文件来讲,可以修改它的内容
对目录来讲,它可以在它下面创建子目录和文件,也可以删除目录和文件
x 对文件来讲,它可以运行
对目录来讲,它体现为,是否可以进去 (cd)
能不能读文件内容取决于:对方件是否有读权限
能不能把文件删除取决于:看对文件的上一级目录是否有写权限
能不能修改文件内容取决于:主要是看对文件是不是有写权限,
如果对文件没有写权限,但是对它的上一级目录有写权限,可以在命令行下,强制修改
设置权限:
chmod 权限指派 文件名
权限指派的方法:
u=rwx,g=r,o= --指派每类用户的权限(不管原来是什么权限)
u=rw,g=rw,o=r
u+x,g-x --在原有权限基础上进行权限的添加与去除
755 --数字法,每类用户用1位数,第1位数,对属主设置
第2位数,对组设置,第3位数,对其它用户设置
例:创建一个文件,自己可以读写、同组的用户只能读,其它用户不能访问
touch a
chmod u=rw,g=r,o= a
chmod 640 a
例:创建一个文件,所有用户只能读
touch b
chmod a=r b
chmod u=r,g=r,o=r b
chmod 444 b
chown 设置属主和组
格式:chown 用户名:组名 文件名
例:将文件属主设置为 mary,开放给dept组
touch c
chown mary:dept c
默认权限:
默认由umask 决定的,umask 表示要去掉的权限
由于安全方面的考虑,文件生下来就没有执行权,所以文件和目录的默认权限计算方法:
目录: 777 - umask
文件: 666 - umask
要设置文件或目录的默认权限,那就要修改umask,umask 对每个用户都可以设置为不同
修改umask方法:
修改一个用户:
vim ~用户名/.bashrc
umask 222
如:
vim ~mary/.bashrc
umask 222
修改所有用户:
vim /etc/bashrc
umask ...
查看umask
umask
临时修改:
umask 222
特殊权限:
权限名 对文件的影响 对目录的影响 设置方法
sticky(t) 不适用 只有属主才能删除自已的文件 chmod o+t 或 chmod 1xxx