Linux下常用组的权限特点,Linux中的用户和组及其权限管理

Linux是多用户,多任务操作系统:多用户是指多个用户可以同时使用系统资源,而多任务指同时运行多个进程。

一、用户和组的概念

1.用户和用户组

用户:能够获取系统资源权限的集合。Linux通过用户实现资源分隔。

用户组:具有相同特征的用户集合。用户组作为用户容器,方便于管理用户。

a.用户类别

管理员:root

普通用户:

系统用户:仅仅用于用于启动服务进程。

登录用户:用于使用者交互使用,是系统资源的使用者

b.用户在操作系统中用UID来标识:

UID是16bits的二进制数字,如此范围为:0-65535。Linux 系统对用户UID做出了规定如图:

9256cd935303385c31c03264897d77b6.png

用户解析库为/etc/passwd ,定义见:/etc/login.defs  文件定义。

2.用户组:组解析库为/etc/group

a.用户组分类

(1)从角色上去分为:管理员组和普通用户组,普通用户组内又包含系统用户组和普通用户组。

(2)从用户角度来看:

基本组:一般与用户命同名,登录时gid为该组gid

附加组:用户附加的组

(3)从组内成员成分区分为:

私有组:一般与对应用户名称相同,组内仅仅有同名用户一个用户;

公共组:为多人组,组内为具有相同权限特征的用户集合。

三、进程:以某个用户的身份运行程序。进程对资源的操作权限取决于它代表的用户。

Linux操作系统中的文件权限模型;

属主:owner

属组:group

其他人:others

四、权限模型生效的机制:

进程的发起者是否与发文件的属主相同,如果是则以文件的属主的身份来访问此文件,否则是否属于文件的属组,如果是则以文件属组的身份来访问此文件,否则以其他用户的身份来访问。如下图所示:

0ea84646478c906e4752e6d8c4136637.png

五、用户和组的管理:

Linux 中用户和用户组的命令有如下命令:

组:groupadd,groupdel,groupmod

用户:useradd,userdel,userdel

认证:passwd,gpasswd

1.组管理命令:

a.groupadd 命令:添加组;

groupadd [选项] group_name

OPTIONS:

-g GID:指定gid,默认为最大gid+1;

-r: 创建系统组,较为常用;groupadd -r -g 336 testgrp

#tail -1  /etc/group

testgrp:x:336:

说明:/etc/group文件格式:testgrp:x:336:gentoo,ubuntu  # 组名:组密码:gid:组用户,以逗号分隔

b.groupmod 命令:修改组信息;

groupmod [选项] GROUP

-g GID:修改GID;

-n new_name:修改组名;

-o, --non-unique :允许使用重复的gidgroupmod -g 348 mango

# 只能指定没被占用的gid,否则报错,指定被占用的gid,可以加-o 选项

groupmod -o -g 336 mango

# cat /etc/group|grep 336

testgrp:x:336:

mango:x:336:

c.groupdel 命令:删除组

groupdel [选项] GROUPgroupdel mango # 没有返回就是没问题

2.用户管理命令

a.useradd命令:创建用户;

useradd [选项] 登录名

-u, --uid UID:指定UID;

-g, --gid GROUP:指定基本组ID,此组得事先存在;

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔;

-c, --comment COMMENT:指明注释信息;

-d, --home HOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;

-s, --shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;

-r, --system:创建系统用户;

-m:--no-create-home:创建家目录

-e, --expiredate YYYY-MM-DD: 指定过期时间。

-M:-M, --no-create-home:不创建家目录

-N:-N, --no-user-group:不创建用户组

-o, --non-unique:可设置重复id#交互式用户创建

useradd magedu -g magedu -G mint,gentoo -c "use for magedu " -d /home/mghome  -s /bin/bash

#tail -1 /etc/passwd

magedu:x:5003:332:use for magedu :/home/mghome:/bin/bash

#tail  /etc/group

gentoo:x:5000:magedu

mint:x:330:magedu

useradd -r magedu3 # 系统用户不会创建家目录

# 系统用户创建

useradd magedu3 -r

[root@localhost ~]# tail /etc/passwd

magedu3:x:983:329::/home/magedu3:/bin/bash

cd ~magedu3

-bash: cd: /home/magedu3: No such file or directory

注意:创建用户时的默认设定配置文件为/etc/login.defs,/etc/default/useradd,其中定义用户添加的默认定义。

利用 useradd -D 选项可以显示或修改创建用户的默认配置;

useradd -D -[e|f|s /PATH/TO/SHELL ]:修改默认的过期时间、是否不活动时间,shell路径useradd -D -s /bin/tcsh  # 修改默认shell,结果保存于/etc/default/useradd

b.usermod [选项] 用户

-u, --uid UID:修改用户的ID

UID;

-g, --gid GROUP:修改用户所属的基本组;

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;

-a, --append:与-G一同使用,用于为用户追加新的附加组;

-c, --comment COMMENT:修改注释信息;

-d, --home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;

-m, --move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;

-l, --login NEW_LOGIN:修改用户名;

-s, --shell SHELL:修改用户的默认shell;

注意:登录用户,为其自定义的shell程序必须在/etc/shells中,否则不能登录。

-L, --lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";

-U, --unlock:解锁用户的密码;

-e, --expiredate EXPIRE_DATE:用与设置用户密码过期时间。

-f,--inactive INACTIVE:密码过期后,不活动时间。# cat /etc/shadow |grep magedu3

magedu3:$1$mAsT1.9N$BK9Ga4xjDcI6yEZCufL6f.:16856:0:99999:7:::

usermod -L  magedu3# 锁定用户magedu3

# cat /etc/shadow |grep magedu3

magedu3:!$1$mAsT1.9N$BK9Ga4xjDcI6yEZCufL6f.:16856:0:99999:7::: # 密码前添加了一个!

c.userdel命令:删除用户

userdel [选项] 登录

-r,--remove:删除用户时一并删除其家目录;# tail -n 1 /etc/passwd

magedu:x:5003:5003::/home/magedu:/bin/bash

userdel -r  magedu

# grep magedu /etc/passwd  # 找不到magedu 账号

magedu1:x:5002:331::/home/magedu1:/bin/bash

magedu3:x:983:329::/home/magedu3:/bin/bash

六、passwd命令:修改用户信息,普通用户默认不加用户名修改自己的信息,管理员可修改其他用户信息。

passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]:

普通用户(1)要求输入老密码(2)符合密码复杂度,不能少于8位,使用至少三类字符,不能近似旧密码等等。

1.passwd USERNAME:修改指定用户的密码,仅root有此权限;

-l, -u:锁定和解锁用户;

-d:清除用户密码串;

-e DATE: 过期期限,日期;

-i DAYS:非活动期限;

-n DAYS:密码的最短使用期限;

-x DAYS:密码的最长使用期限;

-w DAYS:警告期限;

2.passwd --stdin:通过标准输入,输入密码;

echo "PASSWORD" | passwd --stdin USERNAME# echo "administrator"| passwd --stdin magedu #可以在脚本中避免交互!

说明1. /etc/passwd 解析库字段,解析库每行为一条记录,信息栏以":"分隔,以新添加的用户storm用户的解析库条目为例:storm:x:5001:5001::/home/storm:/bin/bash

各字段意义如下

name:passwd:UID:GID:comment:Home_directory:shell路径

说明2. /etc/shadow 密码库解析库字段,解析库每行为一条记录,信息栏以":"分隔以新添加的用户storm用户解析的库条目为例:

storm:!!:16867:0:99999:7:::

login_name:登录名

encripted_password:加密的密码

date of last password change:上次跟新密码时间(这里时间都是用距离1970-01-01的天数);

minimum password age:最小密码更换周期天数,不到期,想更换密码也更换不了;

maximum password age:最长密码更换周期天数,到期不改,会有措施;

password warning period:密码过期警告日期,在到期之前会提示改密码警告;

password inactivity period:密码到期后宽限时间,在宽限时间内只能重新设置密码后,才能使用系统;

account expiration date:硬性规定的过期时间,到期就会不能登录;

reserved field:保留它用。

七、其他管理命令

gpasswd 命令:为组添加密码

组密码文件:/etc/gpasswd

gpasswd [选项] group

-a USERNAME:把用户添加至组中;

-d USERNAME:从此组中移除此用户;# cat /etc/group

peguin:x:1003:gentoo

# gpasswd -d gentoo peguin

# grep peguin  /etc/group

peguin:x:1003:

# gpasswd -a gentoo peguin

Adding user gentoo to group peguin

# grep peguin  /etc/group

peguin:x:1003:gentoo

newgrp命令:登录到一个新组# touch oldgroup

# newgrp gentoo

# touch newgrp

# ls -al oldgroup newgrp

-rw-r--r--. 1 root gentoo 0 Mar 10 00:15 newgrp

-rw-r--r--. 1 root root   0 Mar 10 00:14 oldgroup

chage命令:修改用户账号的各种期限;

4.认证机制

通过对比事前存储的,与登录时提供的信息是否一致,用户的默认存储于/etc/shadow中,组的默认存储于/etc/gshadow中。

密码:加密存放;使用单向加密机制;

单向加密:仅能加密,不能解密;提取数据特征码;

特点:定长输出;

数据相同结果相同;

雪崩效应:文件微小改变,但是加密后变化巨大

常用加密算法:

md5sum:messge digest 消息摘要算法 128bit

sha1: secure hash algorithm,160bits, sha224,256,384,512

说明:在passwd命令加密时会添加加salt防止密码泄漏,salt为添加的随机数;

随机数:真随机数: 熵池

伪随机数: 软件模拟产生的

Linux中的随机设备:

/dev/random:仅仅从熵池返回随机数,随机数耗尽会阻塞;

/dev/urandom:先从 熵池返回随机数 ,随机数耗尽会从为随机数生成器返回随机数;

七、资源权限机制:

1.文件系统权限:

a.用户类型

属主:owner,u

属组:group,g

其他人:other,o

所有用户定义为:all,a

b.文件权系统权限类型:

(1)一般文件权限定义

r:可获得文件内数据

w:可修改文件内数据

x:excutable,可执行

(2)目录文件权限定义

r:可使用ls 命令获取其下所有的文件列表;但不能使用ls -l去获取详细信,也不能使用cd 至目录中;

w:可修改目录的文件列表,也就是在此目录下创建或删除文件;

x:可以使用ls -l 命令获取文件的详细情况,也可以cd到此目录。

c.权限组合机制:用八进制标识文件

例如:rwxr-xr-x:755

2.权限管理:

chmod - change file mode bits

作用:更改文件权限位

使用方法:

chmod [OPTION]... MODE[,MODE]... FILE...

# 以ugoa的方式来进行授权

chmod [OPTION]... OCTAL-MODE FILE...

# 权限数字是数值模式:八进制数字(0-7),分别用4(读权限) 2(写权限)             1(可执行权限)

chmod [OPTION]... --reference=RFILE FILE...

# 标识权限参照某文件修改的方

OPTION:

-R,--recursive:递归

--reference=RFILE:RFILE表示参考其权限模型;

(1)chmod [OPTION]... MODE[,MODE]... FILE...

MODE:

赋权表示法:直接操作一类用户所有权限位rwx;

u=

g=

u=

a=

两类用户权限相同:ug=,go=,uo=

不同类的用户权限不同:u=,g=,o=,

# # ls -al fstab

-rw-rw-r-x. 1 guowang guowang 501 Mar  9 22:46 fstab

# chmod u=rw,g=r,o=r fstab

# ls -al fstab

-rw-r--r--. 1 guowang guowang 501 Mar  9 22:46 fstab

#以u,g,o,a方式赋权

授权表示法:操作一类用户一位或多位权限:

u+, u-

g+, g-

o+, o-

a+, a-

两类用户权限收授机制相同:ug+, ug-, ...

不同类的用户权限不同:u+,g+,o+

# ls -al fstab

-rwxrw-rw-. 1 guowang guowang 501 Mar  9 22:46 fstab

# chmod u+x,g+w,og+x fstab

# ls -al fstab

-rwxrwxrwx. 1 guowang guowang 501 Mar  9 22:46 fstab

(2) chmod [OPTION]... OCTAL-MODE FILE...

OCTAL-MODE:

r:4

w:2

x:1

-rwxr-----. 1 guowang guowang 511 Mar  9 22:46 inittab

# chmod 755 inittab

# ls -al inittab

-rwxr-xr-x. 1 guowang guowang 511 Mar  9 22:46 inittab

# 以 三位八进制整体授权

# 使用数字标识权限时不可省略,例如:

# ls -al inittab

-rwxr-xr-x. 1 guowang guowang 511 Mar  9 22:46 inittab

# chmod 55  inittab

# ls -al inittab

----r-xr-x. 1 guowang guowang 511 Mar  9 22:46 inittab

(3)chmod [OPTION]... --reference=RFILE FILE...

--reference=RFILE:标识参考RFILE文件权限模型;# ls -al inittab fstab

-rwxr-----. 1 guowang guowang 501 Mar  9 22:46 fstab

----r-xr-x. 1 guowang guowang 511 Mar  9 22:46 inittab

# chmod --reference=./fstab inittab

[guowang@localhost mode]$ ls -al inittab fstab

-rwxr-----. 1 guowang guowang 501 Mar  9 22:46 fstab

-rwxr-----. 1 guowang guowang 511 Mar  9 22:46 inittab

chown命令:修改属主或属组

chown [OPTION]... [OWNER][:[GROUP]] FILE...

chown [OPTION]... --reference=RFILE  FILE...

# ls fstab -al

-rwxr-----. 1 guowang guowang 501 Mar  9 22:46 fstab

# chown gentoo:guowang fstab

# ls -al fstab

-rwxr-----. 1 gentoo guowang 501 Mar  9 22:46 fstab

# chown gentoo:gentoo  fstab

# ls fstab -al

-rwxr-----. 1 gentoo gentoo 501 Mar  9 22:46 fstab

选项:

-R,--recursive:递归使用,对目录有效

chgrp命令:修改属组

chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]... --reference=RFILE FILE...

]# ls fstab -al

-rwxr-----. 1 gentoo gentoo 501 Mar  9 22:46 fstab

# chgrp guowang fstab

# ls fstab -al

-rwxr-----. 1 gentoo guowang 501 Mar  9 22:46 fstab

八、其他命令

chsh命令:修改用户的登录shell

chsh [option] [username]

-s:指定shell

-l:查看可用shell列表chsh -s /bin/tcsh guowang

Changing shell for guowang.

Shell changed.

# grep guowang /etc/passwd

guowang:x:1000:1000:guowang:/home/guowang:/bin/tcsh

# chsh -l

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

pwck [options] [passwd [ shadow ]]

-s:以用户id排序文件 /etc/passwd /etc/shadow

-r:只读方式运行命令

grpck:用来验证/etc/group /etc/gshadow件的内容格式完整性

grpck [options] [group [ shadow ]]

-s:以uid排序文件 /etc/group /etc/gshadow

-r:只读方式运行命令pwck  -s passwd shadow

[root@localhost ~]# tail  /etc/passwd

guowang:x:1000:1000:guownag.org:/home/guowang:/bin/tcsh

test:x:987:335::/home/test:/bin/bash

fedora:x:1001:1001:Fedora Core:/home/fedora:/bin/tcsh

gentoo:x:5000:5000::/home/gentoo:/bin/bash

storm:x:5001:5001::/home/storm:/bin/bash

ubuntu:x:986:334::/home/ubuntu:/bin/bash

mageedu:x:985:331::/home/mageedu:/bin/bash

magedu1:x:5002:331::/home/magedu1:/bin/bash

mint:x:984:330::/home/mint:/bin/bash

magedu3:x:983:329::/home/magedu3:/bin/bash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值