Linux 用户及权限详解

Stella981
• 阅读 674

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

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这