欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux 用户及权限详解

程序员文章站 2024-02-04 22:04:10
Linux 用户及权限详解 用户 , 组 ,权限 安全上下文(secure context); 权限: r,w,x 文件: r : 可读,可以使用类似cat 等命令查看文件内容。 w : 可写,可以编辑或删除此文件; x : 可执行,eXcutable, 可以命令提示符下当做命令提交给内核运行; 目 ......

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`."
退出账号 重新登录加载配置文件 查看登录后的提示。

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