Linux账号与权限管理

一、用户和组账号管理

1.1用户账号

  • 超级用户
  • 普通用户
  • 程序用户

1.2组账号

  • 基本组:有且唯一,默认新建用户时自动添加同名的组,基本组在 /etc/passwd 文件中指定
  • 附加组:可有可无,可以有多个,附加组在 /etc/group 文件中指定

1.3ID

1.3.1UID

UID 是区分用户的基本依据,原则上每个用户的 UID 号应该是唯一的。

系统版本 超级用户 程序用户 普通用户
CentOS 6以前 0 1-499 500-60000
CentOS 7以后 0 1-999 1000-60000
1.3.2GID

与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID。
root 组账号的 GID 号为固定值 0,而程序组账号的 GID 号默认为 1~499,500~60000 的 GID 号默认分配给普通组使用。

1.4用户账号管理

1.4.1用户文件位置
  • /etc/passwd
    存放保存用户名称、宿主目录、登录 Shell 等基本信息
mtwm:x:1000:1000:mtwm:/home/mtwm:/bin/bash
mtwm          用户名称
:x            密码占位符   
:1000         UID
:1000         GID
:mtwm         备注信息,描述
:/home/mtwm   家目录路径
:/bin/bash    shell环境
  • /etc/shadow
    存放保存密码
mtwm:$6$lUXP9zJMkSSSSJ.8$vkxPwwCWw25rfdlw0q7Zj.vHzG3p.Yen7b/pRB8cJbjtp.7sOTgvx434WCE0u/hNmQI3ItO4XFVaIhAEv6ySZ.::0:99999:7:::

第一mtwm:用户名
第二:密码
第三:最后一次修改密码时间
第四0:修改密码最小天数
第五99999:密码有效期
第六7:提前7天提醒
第七:宽限天数
第八:失效时间
第九:保留
1.4.2添加用户
useradd [选项] 用户
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用 GID 号)。
-G:指定用户的附加组名(或使用 GID 号)。
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。
-s:指定用户的登录 Shell   /sbin/nologin
-r:创建系统用户
-c:备注信息
1.4.3密码管理
passwd [选项] 用户
-d:清空指定用户的密码,仅使用用户名即可登录系统。
-l:锁定用户账户。
-S:查看用户账户的状态(是否被锁定)。
-u:解锁用户账户。
1.4.4修改用户属性
usermod [选项] 用户名
-l  更改用户账号的登录名称(Login Name)
-L 锁定用户账户
-u 修改用户的 UID 号
-U  解锁锁用户账户
-d:修改用户的宿主目录位置。
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:修改用户的基本组名(或使用 GID 号)
-G:修改用户的附加组名(或使用 GID 号)
-s:指定用户的登录 Shell
1.4.5删除用户
userdel [选项] 用户

-r 将宿主目录一起删除
1.4.6用户初始配置

用户宿主目录下的初始配置文件只对当前用户有效

~/ .bash_profile
#此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件

~/.bashrc
#此文件中的命令将在该用户每次打开新的bash shell时(包括登录系统)被执行(登录 切换 新的bash环境)

~/.bash_logout
#此文件中的命令将在该用户每次退出时bash shell时使用

1.5组账号管理

1.5.1组账号文件
/etc/group:#保存组帐号基本信息
/etc/gshadow:#保存组帐号的密码信息基本不使用
1.5.2添加组
groupadd  组名

groupadd  [-g GID]  组名 
1.5.3管理组
gpasswd 命令——添加、设置、删除组成员

-a:组内添加一个用户
-d:组内删除一个用户
-M:定义组成员列表,以逗号分隔
1.5.4删除组
groupdel 组名

1.6查询

  • figure
    查询用户帐号的详细信息
    figure 用户账号
  • w
    查询已登录到主机的用户信息
w [选项] [用户名]
-h  不显示输出信息的标题
-l  用长格式输出
-s  用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间
-V  显示版本信息
  • who
    只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令
who [选项] [file]
-a  列出所有信息,相当于所有选项。
-b  列出系统最近启动的时间日期。
-l  列出所有可登陆的终端信息。
-m  仅列出关于当前终端的信息,`who -m` 命令等同于 `who am i`。
-q  列出在本地系统上的用户和用户数的清单。
-r  显示当前系统的运行级别。
-s  仅显示名称、线路和时间字段信息,这是 who 命令的默认选项。
-u  显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识。
-T或-w  显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障。
  • users
    登陆此终端的用户
    users

二、文件目录的权限和归属

2.1文件和目录的权限

  • 权限的访问者
    • 属主(u)
    • 属组(g)
    • 其他(o)
  • 访问权限
    • r读权限
    • w写权限
    • x执行权限
  • 二进制数字表示权限:
r w x
1 0 0
0 1 0
0 0 1

二进制转换成十进制:
r =100(二进制)--->4(十进制)
w=010(二进制)--->2(十进制)
x =001(二进制)--->1(十进制)
二进制权限:

rwx rwx rwx
二进制 111 111 111
十进制 7 7 7
  • 对文件的权限

    • r可以查看文件内容,如cat
    • w可以修改文件内容
    • x可以执行该文件
  • 对目录的权限

    • r可以使用ls查看此目录中文件列表
    • w可以在目录中创建文件和删除文件,和文件本身权限无关
    • x可以cd进入此目录,可以使用ls -l查看此目录中文件元数据(须配合r权限),属于目录的可访问的最小权限

2.2修改文件和目录的权限chmod

chmod #格式
#1.模式法
chmod [u:属主;g:属组;o:其他人;a:所有人][+:增加;-:减少;=:覆盖][r:读;w:写;x:执行]文件

#2.数字法
chmod 三组数字 文件目录

-R 递归,将文件夹下所有文件都修改权限

2.3修改文件和目录的归属chown

chown #格式
#1.改属主
chown 属主 文件目录
#2.改属组
chown :属组 文件目录
#3.改属主属组
chown 属主:属组 文件目录

-R 递归,将文件夹下所有文件都修改权限

2.4umask

作用:保留在创建文件权限

umask
查看umask值:umask
修改umask值:umask  数值 

新建文件夹权限=777-umask(文件夹默认最高777)
新建文件权限=666-umask(文件默认最高666)
root的umask 默认是 022
非特权用户umask默认是 002

posted @ 2023-07-23 16:52  德国南部之星  阅读(51)  评论(0)    收藏  举报