账号与权限管理
1.用户的分类
- 超级用户:root用户是linux操作系统中默认的超级用户账号,对本主机拥有之高无上的权限,类似于windows操作系统中的administrator用户。只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事务处理建议只使用普通用户账号(考虑安全性方面)。 root拥有对系统的最高的管理权限 ID=0
- 普通用户:普通用户账号需要由root用户或其他管理员用户创建,拥有权限受到一定的限制,一般只在用户自己的宿主目录中拥有完整权限 系统用户UID:1-999(centos7版本)1-499(centos6版本);UID:既每个用户的身份标示,类似于每个人的身份证号码
- 程序用户:在安装linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号时,这些用户一般不允许登录道系统,而仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail等 伪用户 一般不会用来登录系统的,它主要是用于维持某个服务的正常运行,如:ftp,apache
UID:即每个用户的身份表示,类似于每个人的身份证号码。
- 管理员组:root,0
- 普通组:GID 系统组:1-499(centos6),1-999(centos7)
- 普通组:500+(centos6),1000+(centos7)
表示该账户需要密码才能登录,为空时,账户无须密码即可登录
组账号
-
基本组:基于某种特定联系(如都需要访问FTP服务)将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组);
-
附加组:若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)
默认行为当你创建一个新用户时会自动创建一个和之同名的主组
passwd文件账号记录详细说明
root:x:0:0:root:/root:/bin/bash
详解如下:
root:用户名,用户名仅是为了方便用户记忆。linux系统是通过UID来识别用户身份,分配用户权限
x:表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow(影子文件)。linux系统把正真的加密密码串放置在/etc/shadow文件中,此文件只有root用户可以浏览和操作,最大限度地保证了密码的安全。 注意!!!,虽然“x”并不表示真正的密码,但也不能删除,如果删除了“x”,那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登录(只能在使用无密码登录,远程是不可以)
0:用户账号的UID号
0:所属基本组账号的GID号
root:描述性信息,此字段只是用来解释这个用户的意义
useradd添加用户账号
-u 指定用户的UID号,要求该UID号码未被其他用户使用。
-d 指定用户的宿主目录位置(当与-M一起使用时,不生效)
-e 指定用户的账号失效时间,可使用YYYY-MM-DD的日期格式
-g 指定用户的基本组名(或使用GID号)
-G 指定用户的附加组名(或使用GID号)
-M 不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录
-s 指定用户的登录Shell环境 /bin/bash /sbin/nologin
列:创建一个辅助管理员账号admin,将其基本组指定为“wheel”,附加组指定为“root”,宿主目录指定为“/admin”
useradd -d /admin -g wheel -G root admin
id admin //查看用户UID、GID
passwd命令
echo "123" | passwd --stdin zhangsan //设置密码
passwd -d //清空指定用户的密码,仅使用用户名即可登录系统
-l //锁定用户账户
-s //查看用户账户的状态(是否被锁定)
-u //解锁用户账户
usemod命令
-l 更改用户账号的登录名称(login name)
-L 锁定用户账户
-U 解锁用户账户
-u 修改用户的UID号
-d 修改用户的宿主目录位置
-e 修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式
-g 修改用户的基本组名(或使用GID号)
-G 修改用户的附加组名(或使用GID号)
-s 指定用户的登录Shell
userdel命令
userdel [-r] 用户名 //表示连用户的宿主目录一并删除
gpasswd命令
gpasswd [选项] [用户] [组]
-a 添加用户到组
-d 从组删除用户
-A 指定管理员
-M 指定组成员和-A的用途差不多
-r 删除密码
-R 限制用户登入组,只有组中的成员才可以用newgrp加入该组
groups命令及finger命令
groups [用户] //查看用户在哪个组
finger [用户名] //查询用户账号的详细信息
w、who、users查询登录
权限设置
文件/目录的权限和归属
访问权限:
- 读取r:允许查看文件内容、显示目录列表
- 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
- 可执行x:允许运行程序、切换目录
归属(所有权):
- 属主:拥有该文件或目录的用户账号
- 属组:拥有该文件或目录的组账号
查看目录和文件的属性
root用户、root组
如“drwxr-xr-x”和“-rw-r–r–” 权限字段由四部分组成,各自的含义如下所述
第1个字符:表示该文件的类型,d(目录)、b(块设备文件)、c(字符设备文件)、-(普通文件)、l(链接文件)等
第2~4个字符:表示该文件的属主用户(User)对该文件的访问权限
第5~7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限。
第8~10个字符:表示其他任何用户(Other)对该文件的访问权限。
第11个字符:这里的“.”与SELinux有关,目前不必关注
上述格式中,字符组合“[ugoa…] [±=] [rwx]”或数字组合“nnn”的形式表示要设置的权限模式。其中,“nnn”为需要设置的具体权限值,如“755”“644”等
“ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主,“g”代表文件数组内的用户,“o”代表其他任何用户,“a”代表所有用户(u、g、o的总和)
“±=”表示设置权限的操作动作。“+”代表增加相应权限,“-”代表减少相应权限,“=”代表仅设置对应的权限。
chage命令
用来修改账号和密码的有效期限针对目前系统已经存在的用户
chage [选项] 用户名
-m //密码可更改的最小天数,为0时代表任何时候都可以更改密码
-M //密码保持有效的最大天数。
-w //用户密码到期前,过了这天,此账号将不可用
-d //密码最后一次修改的时间