用户管理
用户分类:
按系统分:
根用户(管理员) 用户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.8crTWB7JRsleXz56Un4Ia93ES6m8eaPcB.
jWUwThxo9wub/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 创建用户
格式:useradd [option] 用户名
option:
-g 指定gid (主要组,唯一的)
-G 指定要加入的组(可以有多个)
-s 使用的shell
例: useradd tom
注:建了用户后,会在用户的家目录下产生几个隐含的文件 .bash_profile .bashrc
这些文件是从/etc/skel 拷来的
groupadd 创建组
格式: groupadd [option] 组名
option:
-g 指定组的id(gid)
例:groupadd admin
gpasswd 管理组
格式: gpasswd [option] 组名
[option]
-a 为组添加成员
-d 将成员删除
-A 指定组的管理员
-R 限制用户临时登录到组,只能组中的成员才可以使用本组身份
练习:
建两个组,为每个组加一些成员
想一下,怎么验证成员加进来了
groupadd g1
groupadd g2
useradd u1
useradd u2
gpasswd -a tom g1
gpasswd -a u1 g1
gpasswd -a mary g2
gpasswd -a u2 g2
也可以在建用户时就指定它加入的组
useradd -G g1 u3
验证方法: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 文件名
[[email protected] test]# cat myfile
uu:x:510:508::/home/uu:/bin/bash
uu4:x:511:510::/home/uu4:/bin/bash
[[email protected] test]# newusers myfil
passwd 设置用户密码
格式:passwd [用户名]
passwd 不加用户名,设置自己的密码,如果加了用户名就是设置其他用户的密码
另:新建的用户,如果没设置密码是不能登录的
passwd 的其它功能
-l 锁定帐号(这种锁定实际是在密码前加 !! )
-u 解锁
usermod 修改用户信息
语法:usremod [option] 用户名
option:
-l username 修改用户名
-g groupname 修改主要组
-G groupnames 修改用户加入的组
-u uid 修改uid
-s shell 修改其shell
练习;把tom的用户给改掉,同时uid 改名1000,再验证看改过来没
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 修改组信息
格式:groupmod [option] group_name
[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
思考:
创建一个文件(/test/test.txt),让 tom 能读写、smith、mary 能读,
其它用户不能访问
tom smith mary
属主 组 其它用户
useradd t1
useradd t2
useradd tom
useradd smith
useradd mary
groupadd tt
gpasswd -a smith tt
gpasswd -a mary tt
cp /etc/yp.conf /test/test.txt
chown tom:tt /test/test.txt
chmod 640 /test/test.txt
默认权限:
默认由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
练习:修改一个用户的文件默认权限,让自己能读写、同组用户只能读、其它用户不能访问
u: rw 去掉是执行(但是对目录最好要有执行权)所以最好只设置为 0
g: r 去掉的是写(但是对目录最好要有执行权)所以最好只设置为 2
o: 可以设置为 7
特殊权限:
权限名 对文件的影响 对目录的影响 设置方法
sticky(t) 不适用 只有属主才能 chmod o+t 或
删除自已的文件 chmod 1xxx
练习:创建一个目录,让所有的人都能往该目录存文件,建文件,但只能删除自己创建的
mkdir /aaa
chmod 1777 /aaa
su - ...
cd /aaa
touch a b c d
su - ...
cd /aaa
touch e f g h
rm a
rm e
要掌握的内容:
1、要会创建用户、组、会为组添加成员
2、要会设置权限,修改属组
为复杂的要求,解决权限问题
3、默认权限设置和特殊
例:创建一个目录,tom、mary 能在该目录中创建文件、删除文件、查看
uu 能看,其它用户不能访问,所有用户只能删除自己创建的文件
原文地址:https://www.cnblogs.com/steven9898/p/11331161.html