Linux 用户及权限详解

时间:2024-01-16 14:49:50

Linux 用户及权限详解

用户 , 组 ,权限

安全上下文(secure context);

权限:
r,w,x

文件:
r : 可读,可以使用类似cat 等命令查看文件内容。
w : 可写,可以编辑或删除此文件;
x : 可执行,eXcutable, 可以命令提示符下当做命令提交给内核运行;

目录:
r : 可以对此目录执行ls 以列出内部所有文件;
w : 可以在此目录中创建文件;
x : 可以使用cd 切换进此目录,也可以使用ls -l 查看内部文件的详细信息;

rwx:
r--: 只读
r-x: 读和执行
---: 无权限

0 000 --- 无权限
1 001 --x 执行
2 010 -w- 写
3 011 -wx 写和执行
4 100 r-- 只读
5 101 r-x 读和执行
6 110 rw- 读写
7 111 rwx 读写执行

权限的数字写法

rw-r----- : 640
rw-rw---- : 660

用户: UID , etc/passwd
组:GID, etc/group

影子口令 :
用户 : /etc/shadow
组: /etc/gshadow

用户类别:
管理员: 0
普通用户: 1-65535
系统用户:1-499
一般用户:500-60000

用户组类别:
管理员组:
普通组:
系统组:
一般组:

用户组类别:
私有组: 创建用户时,如果没有为其制定所属的组,系统会自动为其创建一个与用户名同名的组
基本组: 用户的默认组
附加组,额外组 : 默认组以外的其他组。

cat /etc/passwd 文件属性解析           :为分隔符号
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

1 account: 用登录名
2 password : 密码
3 UID:用户ID
4 GID:基本组ID
5 comment: 注释
6 HOME DIR : 家目录
7 SHELL : 用户的默认shell

etc/shadow
account `: 登录名
encrypted password : 加密的密码 MD5

创建时间

加密方法:
对称加密: 加密和解密都用同一个密码。
公钥加密: 每个密码都成对出现,一个为私钥(secret key) 一个为公钥(public key)
单向加密: 散列加密: 提取数据特征码,常用于数据完整性校验
1 雪崩效应
2 定长输出
MD5 : message digest 128位定长输出
SHA1: Secure Hash Algorithm 160 位定长输出

useradd username 添加账户
groupadd groupname 添加用户组

用户管理:
useradd ,userdel,usermod ,passwd,chsh, chfn,finger,id,change

useradd [options] USERNAME
-u : UID >=500
-g : GID(基本组)
-G : GID ... (附加组)
-c :“comment” 注释信息
-d : /路径 指定家目录
-s : /bin/shell 指定shell 路径
-m -k
-M:
-r:添加系统用户

/etc/shells : 指定了当前系统所有安全可用的shell

userdel:
userdel [option] USERNAME 删除用户
-r : 同时删除用户的家目录
id : 查看用户的账号属性信息
-u:
-g:
-G:
-n:

finger : 查看用户账号信息
finger USERNAME

修改用户账号属性:
usermod
-u : UID
-g : GID
-G -a: GID(附加组,不使用-a 会覆盖之前的附加组)
-c:注释
-d -m: -m 移动旧家目录文件至新家目录
-s:
-l:
-L:锁定账号
-U: 解锁账号

chsh(change shell) : 修改用户的默认shell
chfn :修改注释信息

密码管理:
passwd [USERNAME]
--stdin 从标准输入(可以是管道)中读取新密码。
-l:锁定
-u:解锁
-d: 删除用户密码

pwck 检查用户账号完整性

切换用户登录
su (switch user) 用户名

组管理命令:
groupadd,groupdel, groupmod,gpasswd

创建组:
groupadd :
-g:GID
-r:添加为系统组

groupmod:
-g:GID
-n:GroupName

gpasswd : 为组设定密码

newgrp groupname : 登录到新组, -- > exit

chage : 修改用户密码信息
-d : 最近一次的修改时间
-E :过期时间
-I :非活动时间
-m :最短使用时间
-M :最长使用期限
-W : 警告时间

权限管理:
r:
w:
x:
chown,chgrp,chmod,umask

三类用户:
u : 属主
g : 属组
o : other 其他用户
a :所有用户

chown : 改变文件属主(管理员权限)
chown USERNAME file1,file12,....
-R :修改目录及其内部文件的属主(递归修改)
--reference=/path/to/somefile file1, ... 参考某个文件权限修改file1

chown USERNAME:GORUPNAME file1,...
chown USERNAME.GROUPNAME file,...

chgrp Groupname file,... 改变文件属组
-R :
--reference=/path/to/somefile file1, ... 参考某个文件权限修改file1

chmod:修改文件的权限
修改三类用户的权限:
chomod MODE file,....

修改某类用户或某些类用户权限:
u,g,o,a
chmod 用户类别=MODE file,...

修改某类的用户某位或某些位权限
u,g,o,a
chmod 用户类别 +|- MODE file,....
chmod u+x g-r o+w

umask : 遮罩码。表示默认创建的权限设定。
创建文件为: 666-umask
创建目录为: 777-umask

注意: 文件一定不能默认有执行权限

bash : 脚本解释器

站在用户角度谈 SHELL 的类型
1 登录式shell:
正常通过某终端登录
su - username
su -l username

2 非登录式shell :
su username
图形终端下打开的命令窗口
自动执行的shell 脚本

bash 的配置文件:

全局配置:
/etc/profile, /etc/profile.d/*sh, /etc/bashrc

个人配置:
~/.bash_profile.~/.bashrc

profile 类的文件:
设定环境变量
运行命令或脚本

bashrc类的文件:
设定本地变量
定义命令别名

登录式shell 如何读取配置文件?
/etc/profile --->/etc/profile.d/*.sh ---> ~/.bash_profile ---> ~/.bashrc --->/etc/bashrc

非登录式shell如何读取配置文件?
~/.bashrc ---> /etc/bashrc ---> /etc/profile.d/*.sh

简单设置个root 账号 登录欢迎提示
root账号下编辑个人配置文件 .bash_profile
nano ~/.bash_profile
最后一行输入:
echo "Hello Administtactor ,Welocme to Login ,It's `date`."
退出账号 重新登录加载配置文件 查看登录后的提示。

可在其中加载脚本,用于初始化运行