linux用户账户和权限管理

李先生 2024-11-06 浏览次数:0

超级用户: 管理员 root 默认对本机拥有最高权限的账户。在系统中是唯一的

linux用户账户和权限管理

普通用户:一般都是由管理员创建的,拥有的权限是受限的。一般只在家目录中拥有完整的权限。可以正常登录系统。

程序用户:在安装软件时,有的应用程序需要创建一些账号来保证程序的正常运行,就会创建一个程序账户,程序账户是一些特定的低权限账户,而这些账户不能登录系统当中。作用:保证程序正常运行。

uid:用户的标识号,创建用户时可以指定,也可以系统自动分配。但是唯一,不能重复

gid:组标识,创建用户的时候可以指定,也可以自动分配,也是唯一,不能重复

根据uid来区分

管理员的uid:0

普通用户的uid:1000

程序用户:1-999

判定一个用户是否是管理员,以uid为标准,uid=0就是管理员

cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

dn:x:1001:1001::/home/dn:/bin/bash

①root:用户账号名称

②X 用户密码的占位符

③0 用户的uid

④0用户的gid

⑤root用户的全名,一般和①一致

⑥/root/ 用户的家目录所在位置

⑦用户登录的shell,shell默认的解释器就是bash,只有是/bin/bash才可以登录系统。

/sbin/nologin/bin/false,表示不可以登录系统。

/etc/passwd保存的是用户信息。

/etc/shadow:用户的密码和账户的有效期。

wang:$6$vnH86qGaX7RCIGHS$j.8aQ1mow3JzekIcSy3btUgPrFj4RvSSqWoLQruMzF.GYBfcvd3lp6YoeF7SA94AhulTLhBrLPyODDp0RE6SS.::0:99999:7:::

字段1:用户的账号名称

字段2:用户的密码,MD5加密的方式。*表示不能登录!表示密码为空,不是真的空。什么都没有才是真的为空。

字段3:表示上一次修改密码的时间。

字段4:密码的最短有效天数,0表示不限制

字段5:密码的最长有效天数,99999表示不限制

字段6:提前多少天告诉用户,密码将会过期,默认7.

字段7:密码过期多少天会禁用该账户

字段8:账号失效了多久,为空,永久失效

字段9:保留字段,预留字段,无实意

useradd

-u 指定uid号。已被占用的uid不能被使用。

-d 指定用户的家目录的位置。(一般不动的)

-e 指定用户的账户失效的时间,格式yyy-mm-dd。

-M 创建用户时,不建立家目录。

-s 创建用户时,指定用户登录的shell。

用户创建密码

passwd+用户名 修改密码

passwd -d 清空指定用户的密码。(慎用)

passwd -l 锁定用户,无法登录面试题

passwd -u 解锁用户

passwd -S(大写) 查看用户的状态,用户是否被锁定。

修改密码的另一种方式

echo 用户名+密码 | passwd --stdin 用户名

修改账号的属性

usermod -u 修改用户的uid

usermod -d 修改用户的家目录地址(没人用)

usermod -e 修改用户的账户失效的时间yyy-mm-dd

usermod -s 修改用户登录的shell

usermod -L 锁定用户

usermod -U解锁用户

删除用户

userdel+用户名;只删除用户不删除家目录

userdel -r +用户名 删除用户和家目录

组账号

/etc/group 组账号信息

/etc/gshadow 保存组账号的额外信息

groupadd 添加组账号

groupdel 名称

添加或者删除组成员

gpasswd -a 组名 组名 向组内添加成员

gpasswd -d 组名 组名 删除组用户

gpasswd -M 向组内一次多个添加

配置文件

/etc/profile 全局配置,对所有用户都生效。source重启之后也对所有生效。

~/.bash_profile 用户登陆时会读取的配置,只有自己生效

~/.bashrc 用户的配置文件,只对自己生效,每一次新打开一个shell就会读取这个文件

~/.bash_logout 用户退出当前shell的时候会执行的配置

每次登录都是shell的一个子shell,每个之间都被隔离。

读取顺序:/etc/profile--------~/.bash_profile---------~/.bashrc-------~/.bash_logout

1.查询用户身份的标识

id+用户名

查询uid gid 所属组

2.查询已经登录到主机的用户信息

w who users

u:所有者

g:所在组

o:其他用户

a:所有用户

被八进制算法替换了

r read 读权限 4

w wirte 写权限 2

x 执行 执行权限 1

-rw-r--r--. 1 root root 0 5月 21 13:44 123

3.chmod 赋权命令

递归赋权;

chmod -R 修改权限 目录名 只有一层目录。目录当中所有文件都会生效

4.umask

作用:用来设定文件和目录的默认权限。

文件的默认权限是 666

目录的默认权限是 777

我要修改一个文件的默认权限,怎么办

umask 如果是文件,怎么该umask都没有执行权限。

创建文件,默认就是不给你执行权限。umask怎么设都没有执行权限。

创建目录,一定要有执行权限,没有执行权限,就不能cd进入这个目录。

5.chown

修改所有者和所在组

前提:用户和组都要存在,要先创建好。

chown root : root 文件名 所有者和所在组一起变

chown root 文件名/目录名 只修改所有者

chown :root 文件名/目录名 只修改所在组

chown .root

421
R  read  读权限 4
W  wirte 写权限 2
X  执行  执行权限 1
-rw-r--r--. 1 root root 0 5月  21 13:43 123
  
Rw- 6
R-- 4
S-- 4
6 4 4
-rwx r-x --x
7  5  1
-R--rw-w-
 4  6  2
 Chmod 赋权命令 
Test.sh  所有者 可以读写,所在组 可以执行  其他用户只能看。
Chmod 614  
  
递归赋权
Chmod -R  只有一层目录,目录当中的所有都会生效 ,级联目录只有最后一个生效。

353
Chmod 353 
所有者 写和执行
所在组  读和执行
其他用户  写和执行

456

Umask 用来设定文件和目录的默认权限。
文件的默认权限 666
目录的默认权限 777

创建文件,默认就是不给你执行权限。
创建目录,一定要有执行权限,没有执行权限,你不能cd进入这个目录。
面试题
我要修改一个文件的默认权限,怎么办
Umask ,如果是文件,怎么改umask都没有执行权限。

修改所有者和所在组
前提:用户和组都要存在,要先创建好。
Chown
Chown ld:ld 所有者和所在组一起变
Chown ld.ld