linux获得其他用户权限,Linux 用户及组权限

用户和组权限

在Linux系统上,进程所能够访问资源的权限取决于进程运行者的身份.为了系统资源的安全及易管理,系统中就需要有不同权限的用户.而为了方便用户本身的分类及管理,于是就出现了组的概念.

1.Linux用户

Linux用户有自己的名字,即Username,还有一个和我们×××号码一样的编码UID,它是系统辨识用户的唯一编码.

Linux用户分为两类:管理员和普通用户,普通用户又分为系统用户和登录用户.

管理员 username=root,UID=0

普通用户的UID: 1-65535

系统用户:1-499(centos6),1-999(centos7)用于标识守护进程及其可获得的资

登录用户:500+(centos6),1000+(centos7)用于交互式登录

Attention:多个用户可以使用同一个UID,但系统识别用户只是看uid,遇到uid相同

的,系统就认为是同一用户

登录后,现在提示符前显示用户的username,对于同一个uid系统该采用哪个username

呢?系统会去查询/etc/passwd中username和uid的映射关系,找到第一个和当前用户

uid相同的条目就退出,此时这个条目中对应的username就是要显示的username。因此,

排在文件前面的映射会生效。

2.Linux组

Linux组和用户一样也有自己的名字和编号,groupname和gid

Linux组分为:管理员组和普通组,普通组又分为系统组和普通组

管理员组:groupname=root,gid=0

普通组:

系统组:1-499(CentOS6),1-999(CentOS7)

普通组:500+(CentOS6),1000+(CentOS7)

3.Linux用户和组之间的关系:

对于用户而言:

用户必须有且只有一个主要组(primary group),也叫私有组,组名和用户名相同

辅助组(secondary group),一个用户可以有0个或多个辅助组

一个组可以有多个成员,也可以有多个组管理员,组管理员可以改变组密码,添加或删除

组成员

4.跟用户相关的两个配置文件

/etc/passwd  /etc/shadow

注意:1):这两个文件一个是存储用户信息,一个是存储密码的,早期是放在一起的,可想而知这种做法并不安全,但使用命令也可以将这两个文件合并:

#pwunconv

将密码填入/etc/passwd的x位置,并重命名/etc/shadow文件为/etc/shadow-,相关的密码策略不会显示在/etc/paaawd中

#pwconv

恢复成两个文件

2):查看/etc/passwd和/etc/shadow中某个特定用户的信息:

#getent passwd 用户名

#getent shadow 用户名

/etc/passwd 用于存储用户的相关信息,此文件以:为分隔符分为7个字段,各个字段的含义如下:

1) login name:登录用户名

2) passwd:密码(x,表示占位符;其内容在/etc/shadow文件中)

3) UID:用户ID

4) GID:基本组ID

5) Comment:用户全名或注释

6) home directory:用户家目录

7) shell:用户的默认shell

/etc/shadow 用于存储用户的密码信息,同样以:为分隔符分为9个字段,各个字段的含义如下:

1) 用户名

2) 加密后的用户密码;现在一般使用sha512加密

3) 上次修改时间:从1970年1月1日起到最近一次被更改的时间

4) 最小使用时间:密码过几天后可以变更(0表示可随时变更)

5) 最大使用时间:密码过期时间(99999表示永不过期)

6) 密码警告时间:密码过期前几天系统提示用户(默认为一周)

7) 密码失效时间:密码过期后多少天账号会被锁定

8) 账号过期时间:从1970年1月1日起,多少天后账号失效

9) 保留字段(reserved field)

5.组相关的两个配置文件

/etc/group和/etc/gshadow

查看/etc/group和/etc/gshadow中某个特定用户的信息:

#getent group 用户名

#getent gshadow 用户名

/etc/group存储的是组的相关信息,以:为分隔符:

1) 组名

2) 组密码;通常不需要设定;密码被记录在/etc/gshadow

3) GID:组ID

4) 以当前组为附加组(辅助组)的用户列表(以逗号分隔)

/etc/gshadow 存储的是组密码的相关信息

1) 组名

2) 组密码;和/etc/shadow的密码构造一样

3) 组管理员;逗号分隔用户列表,这些用户都是组管理员

4) 组成员;逗号分隔用户列表,这些都是组成员

6.专门来修改/etc/passwd和/etc/group的工具:

修改且带有语法检查的:vipw和vigr

只有语法检查功能:pwck和grpck

7.用户管理命令

1) 创建用户

useradd [option] username

-u UID  UID的范围在/etc/login.defs中定义

-u -o   不检查UID的唯一性

-g GID  指明要加入的基本组,如果不指定则创建一个与用户名相同的组,并将其作为用户的基本组

-c "Comment" 用户的注释信息

-d HOME_DIR 以指定的路径为家目录 此处指定的路径必须不能是已存在的目录

-s SHELL 指明用户的默认shell

-G GP1[GP2,...] 为用户指明附加组,组必须事先存在

-N 不创建私有组作为,使用users组(Gid=100)作为基本组

-r 创建系统用户

-M 不创建家目录

-D 显示默认配置

-D -s 修改用户的默认shell信息

2)创建用户口令

passwd [options] username

-l 锁定指定用户 (密码前加!!)

-u 解锁指定用户 (删除密码前的!!)

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

-x maxdays: 最大使用期限

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

-i inactive-days: 非活动期限

--stdin 从标准输入接收用户密码; eg: echo "123456" | passwd --stdin username

3)批量创建用户和修改用户口令

#newusers files 批量创建用户;file是满足/etc/passwd格式的文件

#chpasswd 从标准输出读入user:passwd的格式的多行文本,以此来批量修改用户口令

vim batchpasswd

user1:明文口令

user2:明文口令

...

cat batchpasswd | chpasswd

4)用户属性修改

#usermod [option] username

-u UID:指定用户新的UID

-g GID:指明用户新的基本组

-G GP1[Gp2...] 指明新的附加组,原来的附加组会被覆盖(若要保留原来的附加组,则要使用-aG)

-G ""  清空附加组

-s SHELL:指明新的默认shell

-c 'COMMENT':新的注释信息

-d HOME: 新的家目录,原来的家目录中的文件不会同时移动至新的家目录中,若要移动,则要同时使用-m选项

-l login_name: 新用户名

-L: 锁定用户 (在/etc/shadow密码前加!)

-U: 解锁用户

-e yyyy-MM-DD:指明用户账号的过期日期

-f INACTIVE:设定非活动期限

-r:删除用户家目录

5)查看用户的相关信息

#id [options] [user]  查看用户相关信息;不指明用户则查看的是当前用户

-u:UID

-g:GID

-G:group 附加组

-n:显示id对应的名字,通常和-u和-g一起使用

id -un [user] 或 is -gn [user]

#finger 打印登录到系统的所有用户的信息

finger user  查看user相关的一些信息,比如家目录,shell类型,邮件等

6) 在/etc/passwd中家目录字段必须不能为空

如果为空,则登录这个用户时,键入用户和密码之后,会不出现提示符,不能输入任何命令,等待超时之后(提示:/usr/bin/xauth:  timeout in locking authority file /.Xauthority),进入/

若su - user完全切换或不完全切换 su user, 则会显示su: user user does not exist

如果不空,但目录不存在,则登录这个用户时,会直接进入/,

若su - user完全切换 会直接进入/

若不完全切换 su user 会进入执行 su user的目录

7) 切换用户或以其它用户身份执行命令

su [options] [-] [user [args...]]

切换用户的方式:

su user:非登录式切换,不会读取目标用户的配置文件,不改变当前工作目录,也称之为不完全切换

su - user 登录式切换,会读取目标用户的配置文件,切换至其家目录,也称之为完全切换

Attention:root执行su至其他用户无需密码,非root用户切换时需要密码

切换身份执行命令

su [-] user -c 'cmd'

选项 -l --login

su -l user 相当于 su - user

8)修改用户相关信息的其他命令

chfn 指定个人信息

chsh 指定shell

9)修改用户密码策略

chage [option]  user

-d last_day 修改最后修改时间 对应于/etc/shadow的第3个字段

-m --mindays Min_days 修改最小使用时间 对应于/etc/shadow的第4个字段 过多少时间可以修改

-M --maxdays Max_days 修改最大使用时间 对应于/etc/shadow的第5个字段

-W --warndays Warn_days 修改警告时间 对应于/etc/shadow的第6个字段

-I --inactive Inactive 修改账户失效时间 对应于/etc/shadow的第7个字段

-E --expiredate Expire_Date 修改账户过期时间 对应于/etc/shadow的第8个字段

-l 显示密码策略

下次登录强制重设密码

chage -d 0 tom 等价于 passwd -e tom

e.g. chage -m 0 -M 42 -W 14   -I 7 tom

chage -E 2016-09-10 tom

10)删除用户

userdel user 不会删除用户家目录

-r user 才会删除用户的同时删除家目录

在/etc/login.defs中,有这样的描述

# This enables userdel to remove user groups if no members exist.

#

USERGROUPS_ENAB yes

8. 组管理命令

1)创建组

groupadd [option] groupname

-g gid 指明GID 范围在/etc/login.defs中指定

-r 创建系统组

2)修改组

groupmod [OPTION] group

-n groupname :组的新名字

-g GID :新的GID

3)组删除

groupdel group

4)更改组密码

gpasswd [option] group

-a user 将user加入到指定组中

-M user1,user2...指定组成员列表

-d user 从指定组中删除user

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

newgrp命令:临时切换基本组

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

Attention:具体参见本文档/etc/gshadow部分

5)更改组成员

groupmems [options] [action]

options:

-g /--group groupname 更改为指定组(只有root可用)

action:

-a /--add username 指定加入组的用户

-d / --delete username 指定从组删除的用户

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

-l / --list         显示组中成员

e.g. groupmems -g peng -a wang 将wang用户加入peng组

groupmems -g peng -l 查看peng组中的所有成员,似乎是查看以peng组为附加组的成员列表

groupmems -g peng -p 清除所有peng组中的成员

6)查看组成员

groups user1 user2 .. usern 列出指定一个或多个用户的组关系,格式:primary group:secondary group1 secondary group

groups 如果没有指定用户,那么打印当前进程的组关系,通常是没有基本组和附加组的概念

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值