账号与权限管理

一,管理用户账号和组账号

用户账号:超级用户,普通用户,程序用户

组账号:基本组(私有组),附加组(公共组)

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

用户账号

超级用户;

root用户,对本机拥有至高无上的权限。只有当进行系统管理,维护任务时,才建议使用root用户登录系统,日常事务处理建议使用普通用户账户【root拥有对系统的最高的管理权限ID=0】

普通用户:

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

程序用户:

在安装Linux系统及部分应用程序时,会添加一些特定的低权限用户账户,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行,如bin,daemon,ftp,mail等伪用户,一般不会用来登录系统,主要维持某个服务的正常运行,如:ftp,apache

组账号

基本组(私有组)

附加组(公共组)

基本组:基于某种特定联系(如都需要访问FTP服务)将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组):

附加组:若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。

UID:每个用户的身份标识(身份证)

管理员组:root,0(固定为0)

普通组:GID

系统组:1-499(centos6),1-999(centos7)

普通组:500+(centos6) , 1000+(centos7)

【附加组(一个人两个及以上职位)】

1./etc/passwd:用户账号文件

保存文件名称、宿主目录、登录shell等基本信息,每一行对应一个用户的账号记录

root​ : x : 0 : 0 : root:/root:/bin/bash
root:用户账号
x:密码占位符 x表示无密码
第一个0:用户账号ID
第二个0:组账号ID
第一个root:用户说明
第二个root:宿主目录
/bin/bash:登录shell
这里的每个字符不代表实际操作上就是这个字符 x、0和root只是替代

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:描述性信息,此字段只是用来解释这个用户的意义而已

/root:宿主目录,即该用户登录后所在的默认工作目录

注:通常称为用户的主(家)目录。例如: root主目录为/root,普通用户odysee的主目录为/home/odysee/bin/bash录 shell等信息,用户完成登录后使用的

2./etc/shadow:用户账号文件

保存用户的密码,账号有效期等信息

/etc/ shadow(影子文件)
/etc/ shadow文件只有root用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性
和/etc/passwd 文件一样,文件中每行代表一个用户,同样使用":"
作为分隔符,不同之处在于,每行用户信息被划分为9个字段

第一列:账户名

第二列:存放真正加密的密码,采用SHA512散列算法,更加安全
!!和*表示没有密码不能登陆,新创建用户也是!!,如果密码前面显示双感叹号表示该账户被锁定了

第三列:上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是linux的诞生日,date -d"1970-01-01 15775 days"可以查看哪一天改过

第四列:多久之后才可以修改密码,如果是0,则密码可以随时修改

第五列:密码有效期,默认99999,表示永久生效

第六列:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出"修改密码”的警告信息

第七列:密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用

第八列:账号失效时间,使用自1970年1月1日以来的总天数作为账户的失效时间

第九列:保留,未使用

chage命令

用来修改帐号和密码的有效期限,针对目前系统已经存在的用户chage[选项]用户名

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。

-M:密码保持有效的最大天数。chage -M 60 root

-w:用户密码到期前,提前收到警告信息的天数。

-E:帐号到期的日期。过了这天,此帐号将不可用。

-d:上一次更改的日期。

-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

例: chage -E 2019-04-29 test//其中,tet为用户,用户将在2019年4月29日失效(不可登录)

chage -d 2019-06-30 test
/设置test用户最后一次修改密码的日期为2019年6月30日

chage -d 0 test
//则代表该test用户需立即修改密码

date -d "+45 days" -u/如果不知道时间可以用date查看
-u:UTC时间

2.useradd:添加用户账号

user add 【选项】用户名

UID最大上限42亿

添加用户账号
-u:指定用户的UID号,要求该UID号码未被其他用户使用。

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

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

-g:指定用户的基本组名((或使用GID号)。

-G:指定用户的附加组名(或使用GID号) 。

-M:不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录。

-s:指定用户的登录shell。

useradd zhangsan
id zhangsan
tail -l /etc/passwd tail -1 /etc/ shadowls / home

创建一个辅助管理员账号
admin,将其基本组指定为"wheel",附加组指定为"root",宿主目录指定为"/admin"useradd -d / admin -g wheel -G root admin
id admin

3.passwd:设置/更改用户口令

passwd [选项] 用户名

useradd xyh

echo "123456" |passwd --stdin 用户名 用于批量设置更改密码

调用管道符,给xyh新用户设置密码,为了方便系统管理,passwd命令提供了--stdin选项,用于批量给用户设置初始密码

-d :清空指定用户的密码,仅使用用户名即可登录系统

-l :锁定用户账号

-S: 查看用户账号的状态(是否被锁定)

-u: 解锁用户账号

4.usermod:修改用户账户属性

-l :更改用户账号的登录名称(login name)

-L: 锁定用户账户

-U: 解锁用户账户

-u: 修改用户的uid号

-d: 修改用户的宿主目录位置

-e :修改用户的账户失效时间

-g: 修改用户的基本组名

-G: 修改用户的附加组名

-s: 指定用户的登录shell

5.userdel:删除用户账户

userdel -r 用户名:连用户的宿主目录一并删除

【userdel 用户名,后,并没有完全删除,

userdel -rf 用户名可强制删除】

6.用户账号的初始配置文件

文件来源:新建用户账号时,从/etc/skel账号模板目录中复制而来,基本上是隐藏文件。

主要的用户初始配置文件:

.bash_logout: 在用户每次退出登录时执行

【在当前用户登出时,打印logout和当前时间

echo "logout, date"】

.bash_profile: 用户每次登录时被执行

.bashrc: 每次加载"/bin/bash"程序(登录系统)时执行(可以添加用户自己设置的可执行语句,以便自动完成相应的任务)

【每次修改.bashrc后,使用source ~/.bashrc(或者 . ~ / .bashrc)就可以重新载入,生效】

一般会在 .bashrc _profile文件中显示调用 .bashrc

登录linux启动bash时首先会先读取~/ .bash_profile文件,这样~/.bashrc也就得到执行,个性化设置也就生效了

【关于环境变量的读取顺序:

用户登录----加载 /.bash_profile----bash_profile中配置了首先是使/.bashrc生效】

7.组账号文件

与组账号相关的配置文件也有两个,分别是/etc/group 和/etc/gshadow。前者用于保存组账号名称、GID号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息(但
是很少使用到)。某一个组账号包含哪些用户成员,将会在 group文件内最后一个字段中体现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用","(逗号)分隔

grep "^root" letc/group #//检索root组包括哪些用户
grep "root" /etc/groupl/检索哪些组包括root 用户

groupadd命令
groupadd[-g GID]组账号名groupadd -g 1200 market
tail -1 /etc/group

gpasswd命令
-a:添加用户到组

-d:从组删除用户

-A:指定管理员(单个)
-M:指定组成员和-A的用途差不多(多个)

-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

useradd mike
gpasswd -a mike,l,w root#确认mike 用户已加入 root 组

groups mike 查看用户属于哪个组

groupadd:添加组账号

8.查询账号信息

finger 用户名 :查询用户账号的详细信息

w、who、users#查询已登录到主机的用户信息
通常使用tty来简称各种类型的终端设备,

Centos7系统,ttyl表示图形界面,tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切换。

按ctr1+A1t+F2登陆,执行w命令,查看使用的终端就是tty2

User:登录用户名
TTY:登录后系统分配的终端号From:远程主机名,即从哪登录的login@:何时登录
IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
PCPU:当前进程所占用时间
WHAT:当前正在运行进程的命令行

pts说明是用远程工具连接的,比如1xshell,后面的数字代表登录的时间顺序,越小证明登录的越早Ⅰ

二,管理目录和文件的属性

1.文件/目录的权限和归属

■访问权限
●读取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有关,目前不必关注

上述格式中,字符组合"[ugo..][+-=][rwx]"或数字组合"nnn"的形式表示要设置的权限模式。其中,"nnn"为需要设置的具体权限值,如"755""644"等;而“[ugoa.][+-=][rwx]"的形式中,三个组成部分的含义及用法如下所述。

"ugoa"表示该权限设置所针对的用户类别。"u"代表文件属主,"g"代表文件属组内的用户,"o"代表其他任何用户,"a"代表所有用户 (u、g、o 的总和)。

"+-="表示设置权限的操作动作。"+"代表增加相应权限,"-"代表减少相应权限,"=”代表仅设置对应的权限。

"rwx"是权限的字符组合形式,也可以拆分使用,如"r""rx"等。

2.chown:设置文件和目录的归属

chown_属主文件或目录

chown :属组文件或目录

chown属主:属组文件或目录
常用选项
●-R:递归修改指定目录下所有文件、子目录的归属

3.umask

umask设置的背景:从其他人的目录里copy文件过来,copy的时候发现很多文件copy不过来,copy一个文件夹时,当前文件把权限修改了,结果子目录的中的还没有自动继承过来,导致子目录中的文件copy不过来。

改变的umask值在shell退出之前或者使用新的umask命令之前一直有效,如果想永久改变umask值,需要修改自己$ H O M E目录下的. p r o f i l e或. b a s h _ p r o f i l e文件中。

umask 查看umask值

永久修改:

vim .bash_proflie

重新载入:

source .bash_profile

umask 查看

【账户安全

密码复杂性:大小写,数字,符号

安全性:账户密码过期时间】

总结
用户账号管理(useradd,passwd、usermod.userdel)
组账号管理(groupadd、gpasswd、groupdel)
用户账号文件与组账号文件
查询账号相关信息的命令(groups、id、finger,w)
设置目录与文件权限(chmod)
设置目录与文件归属(chown)

posted on 2021-12-24 18:03  杨文昭  阅读(225)  评论(0编辑  收藏  举报