linux中最常用的用户、组和权限

资源分派:

Authentication:认证

Authorization:授权

Accouting|Audition:审计

用户user

  令牌token,identity

    Linux用户:Username/UID

   管理员:root, 0

   普通用户:1-60000 自动分配

      系统用户:1-499, 1-999 (CentOS7),主要包括对一些服务获取资源进行权限分配

      登陆用户:500+, 1000+(CentOS7),交互式登录

组group

    Linux组:Groupname/GID

 管理员组:root, 0

普通组:

         系统组:1-499, 1-999(CENTOS7),对各种服务提供进程

         普通组:500+, 1000+(CENTOS7),对普通用户提供

值得关注的是;

linux中区分用户还是组的概念,是通过ID来确认;

一个用户只能有一个主组,但是可以有多个附加组,就像人的角色一样

Linux安全上下文

       运行中的程序:进程 (process)

       以进程发起者的身份运行:

                 root: /bin/cat

                 mage: /bin/cat

      进程所能够访问资源的权限取决于进程的运行者的身份,而并非资源本身

用户和组的配置文件

Linux用户和组的主要配置文件:

/etc/passwd:用户及其属性信息(名称、UID、主组ID等)

   1.文件中一行代表一个用户

   2.ttyang:x:1000:1000:ttyang:/home/ttyang:/bin/bash ;

      其中x代表口令放在/etc/shadow中

      1000   UID  

      1000   GID

      GECOS:用户全名或注释

      home directory:用户主目录 (/home/wang)

      shell:用户默认使用shell (/bin/bash)

   3.vipw  ==  vim  /etc/passwd,并且 vipw具有检查功能

区分普通用户和管理员(0)账号,通过UID      

/etc/group:组及其属性信息

  1.文件中一行代表一个用户

  2.input:x:999:

    组名称    密码  GID

  3.

/etc/shadow:用户密码及其相关属性

  1.文件中一行代表一个用户

  2.ttyang:$6$Y9yDov3s$HCS5Mp22j7z810T5WPhNYtUnOVfISCOSSQJ0.P5Dx1HV9Y1tD81qZByu20O9BB7CEkdwPCC3BurU9.k/2eLdO/:18468:0:99999:7:::

     其中ttyang 登录用名

     用户密码:一般用sha512加密,$6表示的就是sha512加密算法

     从1970年1月1日起到密码最近一次被更改的时间

     密码再过几天可以被变更(0表示随时可被变更)

 密码再过几天必须被变更(99999表示永不过期)

 密码过期前几天系统提醒用户(默认为一周)

 密码过期几天后帐号会被锁定

 从1970年1月1日算起,多少天后帐号失效

/etc/gshadow:组密码及其相关属性

    1.vigr == vim /etc/group

生成随机密码:openssl rand -base64 9

/etc/shadow 中,!表是禁止   x 表示密码在shadow文件中

修改某个用户的信息:chage ttyang

指定查看某个用户得密码信息  getent shadow/group/passwd/gshadow  wang

检查文件是否正确

vipw/vigr      

pwck/grpck/

当一个用户把一个组作为主组后,就无法删除组

groupadd -r  -r 指的是指定系统组,并不会创建家目录

useradd -d /data/jerryhome jerry  创建用户,可以指定家目录为/data,而并非之前习惯性的创建

切换用户的方式:

su  UserName: 不完全切换,即不会读取目标用户的配置文件,不改变当前工作目录, PATH 变量还是保持切换前的状态

su  -   UserName  完全切换,会读取目标用户的配置文件,切换至家目录,完全切换,PATH也切换   su -l UserName ,一般-l 省略

平时用到最多的是 passwd UserName ,却很少知道下面这些指令;

passwd [OPTIONS] UserName: 修改指定用户的密码

常用选项:

-d:删除指定用户密码

-l:锁定指定用户

-u:解锁指定用户

-e:强制用户下次登录修改密码

-f:强制操作

-n mindays:指定最短使用期限

-x maxdays:最大使用期限

-w warndays:提前多少天开始警告

-i inactivedays:非活动期限

--stdin:从标准输入接收用户密码

执行passwd  UserName 需要输入两遍密码,可以采用下面方法执行

示例:echo "PASSWORD" | passwd --stdin USERNAME

修改用户密码策略

chage [OPTION]... LOGIN

      -d LAST_DAY

      -E --expiredate EXPIRE_DATE

      -I --inactive INACTIVE

      -m --mindays MIN_DAYS

      -M --maxdays MAX_DAYS

      -W --warndays WARN_DAYS

      -l 显示密码策略

示例:

     chage -d 0 tom 下一次登录强制重设密码

     chage -m 0 –M 42 –W 14   –I 7 tom

     chage -E 2016-09-10 tom

创建组

groupadd [OPTION]... group_name

-g GID    指明GID号;[GID_MIN, GID_MAX]

-r            创建系统组

修改、删除组:

groupmod  

       -n group_name: 新名字

       -g GID: 新的GID

组删除:

  groupdel

  groupdel GROUP

更改组密码:

  gpasswd

  gpasswd [OPTION] GROUP

       -a user 将user添加至指定组中

       -d user 从指定组中移除用户user

       -A user1,user2,... 设置有管理权限的用户列表

  newgrp命令:临时切换主组

       如果用户本不属于此组,则需要组密码

更改、查看组成员

   groupmems  

  options:

   -g, --group groupname 更改为指定组 (只有root)

  actions:

   -a, --add username 指定用户加入组

   -d, --delete username 从组中删除用户

   -p, --purge 从组中清除所有成员

    -l, --list 显示组成员列表

  groups [OPTION].[USERNAME]... 查看用户所属组列表

批量修改口令的另一种方式,chpasswd 本身是修改口令的一种交互式方式

echo rose:centos | chpasswd

修改多个账户密码,可以编辑一个a.txt  

cat a.txt | chpasswd

有时候需要修改操作系统参数,切换到 root用户,再切换到普通用户,执行以下简单命令  

su  -  root  -c "cat /etc/shadow"

drwxr-xr-x 2 ttyang ttyang 6 Jul 13 22:46 Music

1、d  文件属性  rwx 所有者  r-x 所有组   r-x 除了所有者之外的others的权限

2、首先查看所有者权限,然后所属组,最后查看others,从左向右的优先级判断生效

3、通常情况下,权限设置 所有者>所属组>others;但是也可以反之,linux中依然支持

chmod  a=  FileName     a 代表all

chmod u+wx,g-r,o=rx file    类似与这样的写法

chmod u-x /bin/cat

虽然修改了用户的执行权限,但是并不影响root的执行,有些超乎操作系统的设置

[root@centos7 ~]#ll /bin/cat

-rw-r-xr-x. 1 root root 54160 Oct 31  2018 /bin/cat

[root@centos7 ~]#cat /etc/issue

\S

Kernel \r on an \m

-x  指的是 a -x  的意思

[root@centos7 ~]#chmod -x /bin/cat

[root@centos7 ~]#

[root@centos7 ~]#

[root@centos7 ~]#

[root@centos7 ~]#ll /bin/cat

-rw-r--r--. 1 root root 54160 Oct 31  2018 /bin/cat

[root@centos7 ~]#/bin/cat /etc/etc/issue

-bash: /bin/cat: Permission denied

root的是权限过大,权限集中于一个人的手中,将权限分散,一般会使用三权分立

chown  -R   代表递归  

***********慎用,毁灭级的操作******

chown -R ttyang   /  data/  

参考/etc/shadow 设置/data/f1文件的权限,此命令同样也适用于chown

chmod --refenrence /etc/shadow /data/f1

通常使用数字化来设置权限更方便

r  4

w 2

x  1

一般来说;

可执行文件 755

文件           640

文件夹        读:可以列出文件名   执行:可以进入目录,可以访问目录的文件内容  写:创建和删除文件

****************

文件的写权限是由文件决定,与目录无关

目录里面的文件能不能删除和创建,不是由文件决定,而是由目录来决定的

****************************************************************

chmod +x +X 的区别

chmod +X 只针对于目录,并修改文件;chmod +x  /data/  将文件夹和文件的执行权限都修改

如果不小心把用户ttyang里面的东西删除,而本身/home/ttyang/这个目录存在,那么可以通过此命令将用户的环境变量等复制过来

cp -r /etc/skel/.    /home/ttyang

文件系统的特殊权限

suid  作用于可执行的二进制的程序,所有者加 s,具有suid的文件,普通用户可以临时继承此程序所有者的权限,但需慎用

sgid   所有组加 s,同样作用于二进制程序,用户执行此程序,将继承此程序所有组的权限;也可以作用于目录中,功能是后期新建的文件,自动继承此目录的所有组 chmod g+s  directory

sticky 粘制位,针对文件夹而言 o+t,某个目录里面的文件,只有文件的所有者才有权限,但root不限制

*******面经********

cp /etc/fstab /data/dir/ 普通用户需要什么权限?

cp 执行权限

/etc/fstab  /etc/执行权限,fstab需要有读权限,ll 并不能查看到里面的内容

/data/dir    /data至少有执行权限,fstab至少需要有xw权限

上面所介绍的权限基本对于root而言不受控制,对于某些关键性文件而言,需要添加特殊权限,以防误操作

   chattr +i 不能删除,改名,更改 ;恢复权限chattr -i

chattr +a 只能追加内容,,,如果使用vim的话,系统不能识别是追加还是改变,一般使用>>

lsattr 显示特定属性

为了解决后期新建目录、文件都显示的是默认权限

type umask 内部命令

这个公式只适用于部分场合;   

     文件夹  022+default=777      文件 022+default=666

umask本质含义:将777|666中对应的权限去掉,得出默认权限,退出登录就会失效,可以加入个人家目录的bashrc里面

umask 也具有所有者、所属组、others   u  g  o

日常小用法:

#umask -S

u=rwx,g=rx,o=rx

#umask -p

umask 0022

#umask

0022

也可以这样写;umask -P >> ,bashrc

默认权限:

文件:666-umask,结果中如果有奇数+1,偶数不变

目录:777-umask

777    111   111   111

022    000   010   010

755    111   101   101     

666    110   110   110

022    000   010    010

644    110   100   100

666    110   110    110

123    001   010    011

644    110   100    100

==============================================================

当用于多余3个人以上,上面所学的东西不能解决权限问题

访问控制列表

ACL:Access Control List,实现灵活的权限管理

   1、除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

   2、CentOS7 默认创建的xfs和ext4文件系统具有ACL功能

针对于用户;  

   setfacl -m u:wang:0 f1 控制wang用户权限为0

   setfacl -m u:wang:- f2

   0 和- 等价

查看某个文件的所对应的访问列表  getfacl f1

针对于组;

   setfacl -m g:g1:rw f1

  

设置ACL以后,权限判断次序,前面满足,后面不再看

  1 看所有者

  2 ACL权限

  对用户

  对组

  3 other

删除ACL策略 ,-R 递归  -b 删除

setfacl -R -b dir  

需要注意的是,ACL和组权限冲突,设置完ACL以后组权限变成mask的权限,另;此处需要注意这里的mask与umask没有关系

举个例子比较直观:

#setfacl -m ttyang:rw f1      不加u的话,它并不针对于某个特定用户

#getfacl f1

   # file: f1

   # owner: root

   # group: root

   user::rw-

   user:ttyang:rw-

   group::r--

   mask::rw-

   other::r--

#ll f1

-rw-rw-r--+ 1 root root 0 Aug  6 22:00 f1  可以看到这里组权限变成 6

而我们创建普通文件的权限是这样的,touch f2  644

ll f2

-rw-r--r-- 1 root root 0 Aug  6 22:06 f2

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值