Linux账号和管理权限

一、用户账号和组账号概述

Linux基于用户身份对资源访问进行控制

  • 用户帐号
    • 超级用户、普通用户、程序用户
  • 组帐号
    • 基本组(私有组)
    • 附加组(公共组)
  • UID和GID
    • UlD(User lDentity,用户标识号)
    • GID(Group IDentify,组标识号)
1.1 用户账号文件

/etc/passwd

  • 保存用户名称、宿主目录、登录Shell等基本信息
    • 文件位置:/etc/passwd
    • 每一行对应一个用户的帐号记录
[root@localhost ~l# head -2 /etc/passwd
root : x : 0 : 0 : root : /root : /bin/bash
bin : x : 1 : 1 : bin : /bin : /sbin/nologin
1.2 su命令
1.2.1 超级用户—root

用户是 Linux 操作系统中默认的超级用户账号,
对本主机拥有最高的权限。系统中超级用户是唯一的。
超级管理员是否是按照名称来定义的吗?

1.2.2 普通用户

由root用户或其他管理员用户创建
拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。

1.2.3 程序用户

在安装Linux操作系统及部分应用程序时会添加一些特定的低权限用户账号,
这些用户一般不允许登录到系统,
仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail 等。

1.2.4 su命令的本质

su命令,只是切换了root的身份,但是shel环境、环境变量、工作目录等还都是
普通用户的shell;su -命令,

完全的切换到root用户,shell、环境变量等都是root用户
包括工作目录。用户时请使用su -用户,可以切换到“用户”,包括root用户

su root   需要密码

su 用户    不需要
echo $PATH

$表示变量关系,固定格式$path 输出当前变量环境
1.3 组账号
基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。
在/etc/passwd文件中第4字段记录的即为该用户的基本组 GID 号。

附加组(公共组):用户除了基本组以外,额外添加指定的组,可有可无,可以有多个
[root@localhost ~]# gpasswd -a dn test
root@localhost ~l# id qzz
uid=1100(dn)gid=1100(dn)组=1100(dn),1101(test)
				1100为基本组或私有      1101为附加组或公共组
				
				
修改主机名:hostname 主机名 ---临时修改,重启失效
	 	 vim /etc/hostname ---永久修改
 		 hostnamectl set-hostname 主机名 --永久修改
1.4 UID、GID

UID:用户标识号
GID:组标识号

管理员:root,0

程序用户:1-499(CentOs6以前),1-999(CentOs7以后)
对守护进程获取资源进行权限分配

普通用户:500+(CentOs6以前),1000+(CentOs7以后)
给用户进行交互式登录使用

1.5 用户账号文件

/etc/passwd
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。
在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,
不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患。
后来经改进后,将密码转存入专门的shadow文件中,而passwd文件中仅保留密码占位符“x“。

1.6 每个字段代表什么
root : x : 0 : 0 : root : /root : /bin/bash
字段1:用户帐号的名称			 	  root
字段2:用户密码占位符	         	   x
字段3:用户帐号的UID号			  	   0
字段4:所属基本组帐号的GID号		       0
字段5:用户全名(登录名)			  root
字段6:宿主目录					 /root
字段7:登录Shell信息(/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆
系统)						   /bin/bash
1.7 每个字段含义
用户账号文件/etc/shadow
默认只有 root 用户能够读取 shadow 文件中的内容,且不允许直接编辑该文件中的内容
root:$6$VyOUGqOC$v5HILM1wagZC/FwGfnrtJFnIT18445:0:99999:7:::

字段1:用户帐号的名称							#root
字段2:使用MD5加密的密码字串信息,当为“*”或“!!”时表示此用户不能登录到系统,
	  若该字段内容为空,则该用户无须密码即可登录系统
							#$6$VyOUGqOC$v5HILM1wagZC/FwGfnrtJFnIT

字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
											 #18445
字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制									#0
字段5:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制								#99999
字段6:提前多少天警告用户密码将过期,默认值为7			#7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用。
字段9:保留字段(未使用)
date -d'1970-1-1 19313days'
所有伪用户的密码都是"!!"或"*",,代表没有密码是不能登录的,当然,新创建的用户如果不设定密码,那么它的密码项也是"!!",代表这个用户没有密码,可以
登录
不用登陆密码这是个伪命题,普通用户之间切换必须要密码,除非passwd -d。

二、添加用户账号—useradd

useradd「选项]... 用户名
2.1 常用选项
-u:指定用户的 UID 号,要求该 UID号码未被其他用户使用。

-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)

-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式

-g:指定用户的基本组名(或使用 GID 号),对应的组名必须已存在

-G:指定用户的附加组名(或使用 GID 号),对应的组名必须已存在

-M:不建立宿主目录。

-s:指定用户的登录 Shell,(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)

[root@localhost ~]# useradd  -d  /ftphome/mike  -g  mike  -Gftpuser  -s  /sbin/nologin  mike
2.2 实例

添加一个新的用户:用户的用户名为test、UID为1002;主目录为/opt/test、所属主组为dn、附加组为ky30、登录shell为/bin/bash。

useradd  -u  1002  -d  /opt/test  -g  dn  -G  ky30  -s  /bin/bash

三、设置/更改用户口令—passwd

passwd{选项] ... 用户名

不指定用户名时,修改当前账号的密码
3.1 用户设置密码
为用户账号设置密码 passwd
root用户可以指定用户名作为参数,对指定账号的密码进行管理
普通用户却只能执行单独的“passwd”命令修改自己的密码。

常用选项:
-d:清空指定用户的密码,仅使用用户名即可登录系统,
-l:锁定用户账户,锁定的用户账号将无法再登录系统。	#图形化界面可以登录,文字界面无法登录
-S:查看用户账户的状态(是否被锁定)
-u:解锁用户账户
passwd 用户名
echo 123 | passwd --stdin 用户名
--stdin:标准输入

--stout:标准输出

四、修改用户账号的属性—usermod

usermod[选项]... 用户名
4.1 修改账号属性命令
-u:修改用户的 UID 号。usermod -u uid号 用户名
-d:修改用户的宿主目录位置。
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
-g:修改用户的基本组名(或使用 GID 号)
-G:修改用户的附加组名(或使用 GID 号)
-s:指定用户的登录 Shell。
-L:锁定用户账户。
-U:解锁用户账户。

[root@localhost ~l# usermod -u 1003 test			#修改用户的UID
[root@localhost ~]# usermod -d /home/test test 		#修改用户的宿主目录
[root@localhost ~]# usermod -s /nologin test 		#指定用户的登录Shell
[root@localhost ~]# usermod -L test 				#锁定用户账户
[root@localhost ~]# usermod -U test 				#解锁用户账户


五、删除用户账号—userdel

userdel [-r] 用户名
添加-r选项时,表示连用户的宿主目录一并删除

[root@localhost ~l# useradd stu01
[root@localhost ~# ls -ld /home/stu01/
drwx------2 stu01 stu01 4096 09-09 12:38 /home/stu01/

[root@localhost ~l# userdel -r stu01
[root@localhost ~#Is -d /home/stu01
/ls: /home/stu01/: 没有那个文件或目录
5.1 -bash-4.2$

出现-bash-4.2 的解决方法: − b a s h − 4.2 表示使用的是 b a s h s h e l l 程序的版本号是 4.2 , 的解决方法:-bash-4.2表示使用的是bash shell程序的版本号是4.2, 的解决方法:bash4.2表示使用的是bashshell程序的版本号是4.2表示当前用户是普通用户

[root@localhost home]# cp /etc/skel/.bashrc /home/test/
[root@localhost home]# cp /etc/skel/.bash profile /home/test/
[root@localhost homel# chown test:test /home/test/.bash profile
[root@localhost home]# chown test:test /home/test/.bashrc
5.2 退出并关闭当前终端
Ctrl+D 

六、组账号文件

与用户帐号文件相类似
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息

[root@localhost ~]# grep "postfix" /etc/group
mail : x : 12 : postfix		组成员列表
postfix : x : 89 :			组账号名

七、用户账号的初始配置文件

  • 文件来源
    • ouseradd 命令添加一个新的用户账号后会在该用户的宿主目录中建立一些初始配置文件。
    • 这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件。
主要的用户初始配置文件
~/.bash_profile
~/.bashrc
~/.bash_logout
7.1 添加组账号—groupadd
[root@localhost ~]# groupadd test
[root@localhost ~]# tail  -f  /etc/group

-g:指定 GID号
[root@localhost ~]# groupadd  -g  26  nbpl
[root@localhost ~]# tail  -f  /etc/group
7.2 添加删除组内成员—gpasswd
常用选项:
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔

[root@localhost ~]# useradd yht
[root@localhost ~]# useradd hcy
[root@localhost ~]# gpasswd -M yht,hcy,qzz dn #将用户yht、hcy和qzz加入到dn用户组中[root@localhost ~]# cat /etc/group
删除组账号 groupdel
groupdel test

查询用户所属的组 groups
groups[用户名]

查询用户身份标识 id
id[用户名]

查询用户帐号的详细信息 finger
需要先进行安装finger软件包
yum install -y finger
finger [用户名]

八、查询账号信息

groups命令
查询用户所属的组
groups [用户名]

id命令
查询用户身份标识
id [用户名]

九、小结

关于账号的叙述,深度了解了超级用户、普通用户还有程序用户的权限以及特点,以及各自的所管理的领域。添加用户也可以指定改变其参数,可以修改用户属性,添加删除组账号以及指定宿主目录和基本组附加组之类的一系列操作,都可以方便我们进行用户的划分和归类,进行更精准的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值