linux用户管理
用户是如何登录:
在linux系统中,用户名(用户帐号)并不识别,识别用户帐号的ID,保存在/etc/passwd.
登录时,我们输入帐号和密码,linux会查找/etc/passwd是否有这个帐号,如果没有,则会跳出,有的话,他会读取该帐号的userID和group ID,同时该帐号的家目录和shell也读取出来,然后核对该帐号的密码表,在/etc/shadow进行核对,核对输入的密码是否正确。这样,就可以登录。
---------------------------------------------
用户分类:
管理员:root id=0,不受任何限制
系统用户:安装某些服务建立的用户,id(1~499),默认不允许登录,用于某些服务运行时所用的身份。
普通用户:管理员创建的用户,id(500以上)
查看用户:id+用户名
----------------------------------------------
与用户配置相关的文件
/etc/passwd:用户的帐号文件,用来保存用户的基本信息
/etc/shadow:用户密码文件,用于存放用户的密码及相关信息
/etc/group:组帐号文件,存放组的基本信息
/etc/gshadow:组密码文件,用于组的密码及相关信息
/etc/skel :用户模板文件
-----------------------------------------------
/etc/passwd:文件剖析
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
以冒号为分割:
第一列:用户名,同一个系统帐号对应user id
第二列:密码,假若为空,表示无密码,为“x”表示由密码
密码:/etc/shadow
第三列:用户ID:这个表示系统内部用来识别不同用户,不同的用户识别码(ID)不同
第四列:组ID:跟/etc/group有关
第五列:描述行信息:几乎没有什么实际作用,主要用来解释这个帐号的信息。
第六列:家目录。用户在登录的时候有个起始目录,登录成功,则首先就在该目录下。root用户默认的家目录/root ,普通用户/home/用户名
第七列:用户登录的shell,如果使用是nologin 表示不允许登录
-------------------------------------------------------
/etc/shadow :文件解析
operassr:x:11:0:operator:/root:/sbin/nologin
profile:!!:15544::::::
tom:$6$dMdJs95H$.tlFC9GAdQ3Eks6uqRc1c/hSg7PyDGBxkZfaM2wKr4pDhToalmHPxV/Ngq5JAJmosyjjCH3rNw4v2rF7Ny3WX.:15545:0:99999:7:::
第一列:用户名。与/etc/passwd相对应
第二列:密码。用grub-md5-crypt加密
第三列:上次修改口令的时间,记录1970年1月1日的天数来表示
第四列:两次修改口令的时间价格。“0”可以随时修改。
第五列:口令的有效期。”99999“表示永远有效
第六列:口令过期前提示。
第七列:密码过期后多少天不能用,(为空,表示过期不能使用)
第八列:距离1970年1月1日之后口令过期
第九列:保留,以后新功能的扩展
-------------------------------------------------------
/etc/group 文件解析
root:x:0:root
bin:x:1:root,bin,daemon
第一列:组名(建立一个用户。会自动创建一个同名的组)
第二列:组密码
第三列:组ID
第四列:组成员
-------------------------------
/etc/gshadow 文件解析
oprofile:!::
slocate:!::
tom:!::
第一列:组名
第二列:组密码
第三列:组的管理员
第四列:组成员
----------------------------
创建用户 useradd adduser
格式:useradd[option] username
[optin]
-d:指定家目录的位置(默认/home)
-s:指定使用的shell ls /bin/*sh
-c:添加备注信息
-g:指定用户组
-G:指定用户加入另外的组
-u:指定用户ID
如:useraddjim
tail /etc/passwd
useradd -s /bin/csh a1 指定shell
a1:x:502:502::/home/a1:/bin/csh
通过切换到字符界面(ctrl+alt+ F2 ~ F7)看能否登录成功
---------------------------------------------
设置密码:passwd
格式:passwd[username]
如:passwd :修改当前用户密码
passwd + 用户名: 只能root用户来修改,其他用户无法修改其他用户的密码。
注意:root用户可以修改任何用户的密码,但是其他用户只能修改自己的密码,不能修改其他用户的密码。
-------------------------------------------
修改用户信息
usermod
格式:usermod[option] username
[option]
-d:表示目录名,可以修改家目录
-g:组名,修改属组
-G:组名列表,修改附加组
-l:表示用户名,修改用户
-s:表示shell, 修改自己的shell
-u:修改用户ID
-L:锁定用户
-U:解锁
锁住,其实是他的密码失效 !不安全的锁
我们可以通过修改密码得到直接登录的目的
假若我们修改shell,则无法通过修改密码来登录
------------------------------------------------
删除用户
userdel
格式:userdel[option] username
-r:连同它的家目录一块删除
例:userdeljim 家目录保留
userdel -r tom 家目录一块删除
-------------------------------------------
id 查看用户和组的信息
格式:id +username
----------------------------------
su 用户切换
格式: su [-]username
- 可以省
不加和加的区别?
如果不加的话,使用环境变量的时候会造成一些执行上的错误。
退出的话:用exit 返回上一次的用户。
------------------------------------------------
创建组
groupadd
格式:groupadd +groupname
如:groupaddadmin
---------------------------------------------
groupdel 删除组
假若一个用户为其属组,要删除的话必须先把用户删除,保证改组不属于任何用户的主组。
----------------------------------------------
管理组:
gpasswd
gpasswd groupname 设置组密码
gpasswd -a username groupname 表示将用户添加到组中
gpasswd -d username groupname 表示将用户从组中删除
gpasswd -A username groupname 表示将用户设置为组的管理员
练习:创建admin组,为组添加三个用户,并指定一个管理员。
管理员:可以把其他用户添加到组里。
如何验证:tail/etc/gshadow中是否添加成功
groupadd admin
useradd a1
useradd a2
useradd a3
gpasswd -a a1 admin
gpasswd -a a2 admin
gpasswd -a a3 admin
gpasswd -A a1 admin
------------------------------------------------
修改组的信息
groupmod
格式:gruopmod[option] groupname
[option]
-g: 修改组ID
-n: 修改组名
例:groupmod -g600 admin ID不存在才可以修改成功
groupmod -n kening admin
---------------------------------------------
查看用户的组信息
groups
格式:groups +username
例:groupsroot
groups a2
------------------------------------------------
linux权限管理
linux系统文件的访问分类:
u:表示的文件属主(拥有者)
g:表示属组
o:表示其他用户
a:表示所有用户
linux的基本权限:
r:读 4
w:写 2
x:执行 1
000 0 ---
001 1 --x
010 2 -w-
011 3 -wx
100 4 r--
101 5 r-x
110 6 rw-
111 7 rwx
-------------------------------
linux在文件和目录有什么区别?
read 读权限:
对文件:能不能读,查看文件的内容(cat)
对目录:能不能读是看目录里面的文件列表(ls)
write: 写权限
对文件:能不能写,就是是否可以修改它的内容
对目录:能不能在其下面创建子目录或者文件
execute:执行权限
对文件,看文件能不能运行
对目录,看能不能cd到目录中去。
注意:文件能不能修改,取决于是否有写的权限,假若文件没有写的权限,要看它的上级目录是否有写的权限,通过命令行强制修改。
文件能不能删除取决于,它的上级目录是否有写的权限
---------------------------------------------------------
设置权限:
格式:chmod[option] 权限授予方式 文件或者目录名
[option]
-R:表示包括子目录都受到相应的权限
授权的方式:
u=rwx,g=rx,o= 例:chmodu=rwx,g=rw,o= a
u-w,g-r 表示取消权限
u+w,g+w 表示在其权限的基础上添加
777: 表示属主,属组,其他用户都可读写执行
练习:创建一个文件,让属主可读可写可执行,属组只读,其他用户无法访问。
# touch aa
chmod u=rwx,g=r,o= aa
------------------------------------------------------
设置修改文件的属主和属组
chown:
格式:chown 属主:属组 文件或者目录
例:将文件属组改为admin
chown root:admin aa
或者chown:admin aa
修改文件的属主:
chown a1 aa
或者chowna1:root aa
------------------------------------------------
特权(高级权限 特殊权限)
SUID:
对文件:以属主的身份运行。
对目录:不适用。
设置:chmod u+s 文件名
或者:chmod 4xxx 文件名
SGID:
对文件:以组的身份来运行
对目录:在该目录下创建的文件或者目录时,属组不是用户的组,而是继承上级目录组
设置:chmodg+s
或者:chmod 2xxx
例:
STICKY:对文件:不适用。
对目录:只能删除自己创建的文件
设置:chmod o+t 目录名
或者:chmod 1xxx 目录名
---------------------------------------------------
默认权限:
默认权限取决于umask
计算默认权限的方法:
对目录 777-umask=目录权限(如果权限4位,只取后三位)
对文件:文件在生成的时候,默认没有执行权限
666-umask=文件的权限
临时修改:umask222
永久修改:
~/.bashrc 只对当前用户用户起作用
修改所有用户:
/etc/bashrc
umask 222
-----------------------------------------
作业:1 手动创建一个用户
第一步:在/etc/passwd添加一行信息
hhh:x:508:508::/home/hhh:/bin/bash
第二步:/etc/shadow添加一行信息
hhh:$1$BTe9l0$ZyGXXXPYjbsTsVnIhQY710:15546:0:99999:7:::
第三步:/etc/group添加一行信息
hh:x:520:
第四步:/etc/gshadow添加一行信息
hhh:!::
第五步:创建家目录
mkdir /home/hhh
第六步:把用户环境变量(用户模板信息)复制
cp /etc/skel/.* /home/hhh/ -rf
chown hhh:hhh /home/hhh/ -R
chmod 755 /home/hhh/ -R
第七步:创建用户的邮件文件
touch /var/mail/hhh
chown hhh:hhh /var/mail/hhh
chmod 660 /var/mail/hhh
2 创建一个目录,让tom能读能写可执行,jim,mary,kiss可读可执行,其他用户无法访问,设置好后去验证。
#mkdir /test/share 创建目录
#useradd tom
#useradd jim
#useradd mary
#useradd kiss 创建四个用户
#groupadd dept 创建一个属组
#gpasswd -a jim dept
#gpasswd -a mary dept
#gpasswd -a kiss dept 将三个用户加入到dept组中
#chown tom:dept /test/share 指定属主和属组
#chmod u=rwx,g=rx,o= /test/share 指定权限
linux用户管理
最新推荐文章于 2022-11-23 10:50:15 发布