linux-文件账户与权限管理

"第二次学习"

Posted by yangsir on December 11, 2023

“Yeah It’s on. ”

文件账户与权限管理

linux —–> 多任务、多用户、多进程的服务器操作系统

超级用户 uid=0 gid=0

普通用户 1000<=uid<=60000 一般在宿主目录下有完整权限

程序用户 1<=uid<=999 通常不能登录系统

/etc/passwd

作用:保存着用户名称、宿主目录、登录Shell等基本信息,每一行对应一个用户的账号记录。

eg:

1
2
head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash

共七个字段

  • 第一字段:用户账号名
  • 第二字段:密码占位符(密码保存到了影子文件)(x表示有密码) (!!表示新用户没有密码,或者密码被锁定)
  • 第三字段:uid编号
  • 第四字段:gid编号
  • 第五字段:用户备注信息(用户全名)
  • 第六字段:用户宿主目录(家目录)
  • 第七字段:登录时分配到的shell解释器(若shell类型为/sbin/nologin则不能登录)(/sbin/nologin一般用于程序用户)

/etc/shadow

存储加密密码、共九个字段、具体啥功能不重要

useradd命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
useradd [选项] 用户名


-u		#指定uid
-d		#指定宿主目录(默认为/home/用户)
-e		#指定账户生效时间(yyyy-mm-dd)
-M		#不建立宿主目录
-s		#指定登录shell
-g		#指定基本组名(或gid号),系统中创建用户时,默认会创建一个同名的基本组
-G		#指定附加组
-c		#添加备注,这个选项基本没什么用(显示在/etc/passwd第五字段)

#注意:-e和-M经常组合出现,用于程序用户

用户初始配置文件

image-20231211225634404

新用户创建时,都是复制root用户/ect/skel下的文件作为初始配置文件

/ect/skel可能会存着行为守则

  • .bash_logout:退出时执行

  • .bash_profile:每次登陆时执行(常用于软件开机自启)

  • .bashrc:每次切换bash执行

  • .bash_history:用户登录时从该文件加载用户历史命令记录 这个文件,只有在进行操作之后才会有

1
history -c #清除历史命令

命令复用

1
! + 序号

image-20231211230300208

全局配置文件

/etc/profile

/ect/bashrc

/etc/profile和.bash_profile都是每次登陆时加载,所以会出现两个配置的冲突问题,此时,/etc/profile要比.bash_profile先加载,所以.bash_profile会覆盖/etc/profile命令

设置更改用户密码passwd命令

1
2
3
4
5
passwd [选项] 用户名
-d		#清除密码(和不设置密码一样,为空)
-l		#锁定用户
-S		#查看用户信息
-u		#解锁用户

普通用户和普通用户之间不能互相更改

1
2
3
4
usermod [选项] 用户名
-L		#锁定用户
-U		#解锁账户
-l		#更改用户名称

注意:用passwd命令锁定的用户,用usermod命令可以解锁反之同理

1
2
userdel [选项] 用户名
-r		#删除用户同时删除目录

关于用户及密码相关控制文件

/etc/login.defs 用户创建时默认的相关信息

/etc/skel 用户家目录的信息

/etc/default/useradd 用户创建的相关信息

/lib64/security/pam_cracklib.so#控制密码复杂度的关键文件

组账户管理

组:部分用户的集合

/etc/group保存组账号基本信息

/etc/gshadow保存组账号的密码信息(较少使用)

image-20231213172511017

1
groupadd 组名		#添加组
1
2
3
4
gpasswd [选项] 组名
-a		#添加组员 gpasswd -a [用户名] [组名]
-d		#删除组员 格式同上
-M		#定义组成员列表,注意是定义!一旦使用该选项,原先的组员会被覆盖
1
groupdel [选项] 组名		#删除组
1
2
3
4
5
6
id [用户名] 	  查看用户信息    
groups[用户名]   查询用户所属的组
finger [用户名]  查询账号的详细信息(该命令需要安装)
w       		#当前登陆用户-终端-地址-登陆时间-系统平均负载值-执行命令 
who     		#当前登陆用户-终端-地址(pts表示远程终端,ttyl表示主机连接)
whoami  		#当前登陆用户

归属(所有权)

属主:拥有该文件的用户账号

属组:拥有该文件的组账号

查看文件的权限和归属

第一位表示文件类型

  • -:表示一般文件
  • d: 表示目录
  • l: 表示软连接(快捷方式)

image-20231214182929893

目录满权限:777,默认是755

文件满权限是:666,默认是644 x需要手动赋予,变成可执行文件

设置文件或目录的权限chomd命令

格式:

1
chmod [-R] [ugoa] [+=] [rwx] 参数
1
chmod [-R] [nnn] 参数

-R 表示以递归的方式设置目录及目录下的所有子目录及文件的权限

u:属主

g:属组

o:其他人

a:所有人

设置文件的归属chown命令

格式:

1
chown 属主 文件
1
chown:属组 文件 =chown.属组 文件 = chgrp 属组
1
chown 属主:属组 文件

umask

查看umask值

image-20231215132338135