Linux下的用户账号与权限的管理

系统:Red Hat Linux系统下的RHEL7

一、用户与组的管理(user,group)
用户账户分类
超级用户:UID=0(GID的分类和GID规律与UID一致)
程序用户:RHEL5/6,UID=1-499;RHEL7,UID=1-999(1-200系统)
普通用户:RHEL5/6,UID=500-65535;RHEL7,UID=1000-60000

文件:
/etc/passwd ----用户的基本信息
/etc/shadow ----用户的密码信息
/etc/group -----用户的组信息

用户的信息在/etc/passwd和/etc/shadow中是一一对应的,所在的行数也是一致的。

基本指令:

groupadd 组名     ------创建组
可以指定组id 等属性 groupadd 组名 -g 组id
groupmod 修改已经创建组的属性比如组名,组id等
groupdel 删除组(只针对附加组,主组无法删除)
删除主组需要先删除用户或者将主组释放出来,替换掉。就可以进行删除。

useradd 用户名 -----创建用户
userdel 用户名 ----删除用户,但保留家目录,只是删除passwd和shadow下的信息。
userdel -r 用户名 ----删除用户的同时删除家目录,(日志信息一并删除/var/spool/mail)

usermod 对已存在的账户做属性的修改
-s 修改登录shell (/bin/bash允许登录,/sbin/nologin禁止登录)
-L 锁定用户
-U 解锁用户

psswd 密码修改
针对root:
1、不需要知道当前的密码
2、设置新密码不需要遵循密码规则
3、root用户切换到其他普通用户不需要输入密码,反之需要

针对普通用户:
1、需要知道当前用户的密码
2、设置新密码,必须遵循密码要求

-------------------------------
仅限于root用户下操作
passwd -l 用户名 进行密码锁定
passwd -u 用户名 进行密码解锁
-------------------------------
passwd锁定和usermod锁定用户有所区别,二者不同。
查看/etc/shadow即可。 

相关策略:(仅限于root用户下操作)
passwd -S 用户名 -----查看用户的密码状态以及相关信息
passwd -s 登录shell 用户名 -----修改登录账户的登录shell
passwd -d 用户名 ------清除用户的密码
passwd -f 用户名 ------登录强制修改密码

----------------------------------------------------------------------------------
echo 新密码 | passwd --stdin 用户名
-------跳过修改密码的交换界面(不需要交换应答),可直接修改密码(有利有弊,密码以明文的形式保存所有人都知道。)

通过管道符来实现,前者的输出作为后者的输入。
----------------------------------------------------------------------------------
root切换用户无需输入密码,反正需要。


cut 主要针对“列”提前文本字符
f 设置需要查看的列数
d 设置间隔符号

指令格式:cut -d 间隔符 -f 需要查看的列数 文件/目录
与grep的区别在于:grep可筛选行,cut可筛选列。

-------------------------------------------------------------
用户创建时,默认的属性都通过/etc/login.defs文件控制,修改此文件的属性,会影响以后创建的所有用户。
-------------------------------------------------------------

如果需要对现存的用户进行属性的修改,可以使用chage这个指令进行操作。
chage --help 查看帮助
chage -l username 查看用户的密码策略
chage -M 天数 设置密码维持的天数(多少天以后密码过期---有效期)
chage -m 天数 设置密码多少天以内可以再次修改(可以修改密码的最小天数)
chage -W 天数 设置密码过期前的多少天进行提醒(密码过期的警告提醒)
->可以合并成一条命令:chage -M 天数 -m 天数 -W 天数 
修改以后可以通过/etc/shadow文件来查看变化。

chage -d 将上次更改密码的日期设置为最后一天
chage -d 0 用户 ---设置用户登录时,强制修改密码

-----------------------------------------------------------------------
用户创建时也会根据/etc/skel这个魔板来进行创建,文件中有什么新建用户时,就会拷贝什么,默认都是隐藏文件,可以自定义往里面添加或者拷贝文件,再新建用户,家目录下就会出现新添加的文件。
-----------------------------------------------------------------------

二、目录和文件的权限管理
例:-rwxrw-rw-     不算第一位,其他每三位为一组。第一位表示目录或文件的类型

权限表示:
rwx
r:可读,表示可以列出目录中的文件,可以执行ls指令
w:可写,表示可以修改,删除,增加目录中的文件(touch,rm)
x:可执行,表示可以进入该目录,可执行cd指令,可以cd进去,同时查看目录中文件的详细信息。

-rwx------
第一位表示文件类型,常用:
-:表示普通文件
d:表示目录文件
l:表示软链接
b:表示块设备
c:表示字符设备

rwx对应的数字为421,(r对应4,w对应2,x对应1)所有文件的最大权限为r+w+x=7,即777
对文件权限进行更改使用chmod指令
u表示user,属主
g表示group,属组
o表示other,其他用户
a表示所有

chmod指令基本使用
chmod u/g/o+/- rwx 目录/文件
比如:chmod u+w dir/file 对目录/文件属主增加可写的权限 / chmod g-x dir/file 对目录/文件的属组去除可执行的权限。

也可以使用数字:
chmod 777 file 对目录/文件属主,属组,其他用户都开放所有权限(相当于-rwxrwxrwx)
chmod 640 file 对目录/文件属主可读可写,数组可读,其他用户没有任何权限。(-rw-r-----)


chown修改目录/文件属主的属性
---------------------------------------------------------
chown即可单独修改属主,也可单独修改属组,也能同时修改属主属组
---------------------------------------------------------
指令:
chown 目录/文件 用户名     --------修改目录 或者 文件的所属主

chgrp只能修改属组
chgrp 属组 file/directory    -------修改目录或文件的所属组

------------------------------------------------------------------
同时修改:
chown 属主:属组 file/directory    -----同时修改目录或文件的属主和属组
或chown 属主.属组 file/directory
------------------------------------------------------------------

扩展位:
suid、sgid、粘滞位o+t
--------------------------------------------
suid的作用:
用于可执行文件,使文件的拥有者的身份运行该文件
指令:
chmod u+s file(相当于运行时,借助管理员身份运行)
--------------------------------------------

--------------------------------------------
sgid的作用:
用于目录,在该目录建立的所有文件或目录,属组都继
承该目录的属组。
指令:
chmod g+s dir
--------------------------------------------

---------------------------------------------
粘滞位的作用:
用于目录,在该目录建立的文件或目录,只有建立者
可以删除其他用户无法删除。
所有的other用户在目录中都拥有对自己文件的完全控制权限。
指令:
chmod o+t dir
---------------------------------------------

扩展权限控制:
setfacl 设置某个文件或者目录的ACL属性
-m 设置acl,针对用户,关键词为‘u’,针对组,关键词为‘g’,设置时,权限不能为空
-x 删除设置的acl属性
-d 只针对目录设置默认的acl参数
-b 删除所有的acl属性

getfacl 获取某个文件或者目录的ACL属性
-a 显示文件acl属性
-d 显示默认的acl属性
-R 查询递归的acl属性
---------------------------------------------------------------------------------
基本指令:
setfacl -m u:tom:rw- /file
setfacl -m u:jerry:- /file
setfacl -m g:IT:rw- /file
setfacl -d -m u:tom:rwx dir 只针对目录得acl属性设定(-d参数表示--default)

getfacl dir/file 获取目录或者文件的acl信息

移除权限(-x移除acl,移除权限时,无需指定权限,针对用户或组即可)
指令:
setfacl -x u:jerry /file
SUID:针对特殊指令,做提权,不建议随意更改默认指令属性,执行者对该程序需有x可执行权限
----------------------------------------------------------------------------------

可以通过chmod来修改属性来进行控制:
------------------------------------------------
权限数字表示:
(suid借助此时得身份进行运行,如果当前是root就是借助root身份)
4775 ------ chmod 775 file + chmod u+s file
4755 ------ chmod 755 file + chmod u+s file

sgid针对同组成员,彼此不发送冲突。同组成员继承父目录的属组。主要针对目录。
2770 ------ chmod 770 file + chmod g+s dir

粘滞位:用于目录。在目录下只有创建者才可以删除自己的文件。其他用户无法删除。
1777 ------ chmod 777 file + chmod o+t dir
------------------------------------------------

umask值是在建立目录或文件的默认权限,可以修改。(默认情况下系统会分配一个默认值,根用户0022,其他用户0002)
umask -S 以字母(符号)的形式显示各个权限。

777(rwxrwxrwx)
root根用户下:
新建目录权限dir=777-022=755
新建文件权限file=777-022-111=644

users其他普通用户下:
新建的目录权限dir=777-002=775
新建的文件权限file=777-002-111=664

三、su,sudo提权
(su 切换身份,以超级用户的身份来执行)
(sudo 赋予某些指令,赋予提权,执行某些指令。不告诉root密码)

 -->sudo是用自己的密码,通过赋予的权限,来执行我需要做的事情,没写的无法操作。----有条件的下放
 su没有限制。给予超户密码。

(1)su - 切换用户
su - 用户名 
在根用户下,切换用户不需要密码。反之需要。
普通用户下,su - 不加用户名是往根用户切换。需要输入密码。

(2)sudo 提权运行相关的指令。
可以设置黑白名单。放行或者不允许相关指令的执行。
visudo 来进行修改文件更改相关的权限。
或可以修改文件/etc/sudoers 来进行设置。二者一样。
sudo su - 只要知道当前用户的密码就可以切换到root用户。(风险指令)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值