从零开始学Linux系统(五)用户管理和权限管理
权限管理:
常识:
chmod U-所有者 g-所属组 O-其他人
r-4-可读 w-2-可写 x-1-可执行 s-4-SetUID s-2-SetGID t-1-粘着位
注:目录的写权限-可对文件增删
文件的写权限-可对文件编辑
默认权限:755
查看:nmask 显 示为0022 //实际权限(取补): 777-022 = 755
设置:umask -S 0022
修改:umask 027 // 777-027 = 750 修改为750的权限
注:linux权限规则:缺省创建的文件不能授予可执行x权限,所以实际是644
如0022权限编号的第一位是用来指定特殊权限的,后面位数分别对应r、w、e权限;
授予权限:
chmod u+wx 文件名 或 chmod 641 文件名
疑问:既然/passwd对于普通用户是只读的,那普通用户又是如何用passwd修改密码的呢??
因为passwd命令,所对应etc/passwd文件的所有者是root, 而普通用户是具有s 【SetUID】权限;
【针对所有者】SetUID权限: 当一个可执行程序具有SetUID权限,用户将自动以这个程序所有者的身份运行;
授予SetUID权限的方式: chmod u+s 或 chmod 4755 (SetUID - 4)
授予SetUID权限的方式: chmod u-s 或 chmod 0755 (SetUID - 4)
注:必须时可执行程序,不是可执行的会是大写的S,并不起作用;
扩展:【针对所属组】s-SetGID - 2 功能与SetUID相似 ;设置 chmod g+s 或 chmod 2755
【针对其他人】t-粘着位 - 1 如果一个权限为777目录具有粘着位,所有人都可以在该目录下创建,但只能删除自己所创建的文件;设置 chmod g+t 或 chmod 1755
用户管理:
用户分类:
Linux用户分为3种: 通过 /etc/passwd 文件中的UID
超级用户 (UID=0,如: root) -- 它不收系统设置的限制
普通用户(UID 500-60000)
伪用户(UID 1-499)【与系统和程序服务相关,无宿主目录,不能登录系统】
命令:
添加:
添加用户组:groupadd 组名
添加用户:useradd 用户名 -g 【缺省组】 -G【附加的多个组】 -c【描述】 -e【失效时间】
设置密码:passwd 密码
设置组密码:gpasswd 组名 密码
修改
修改用户信息:usermod
修改用户名 usermod -l 新用户名 旧用户名
修改所属组 usermod -G 组名 用户名
设置组密码及管理组内成员:gpasswd
修改组中用户 gpasswd -a 用户名 组名
删除从组中用户 gpasswd -d 用户名 组名
设置组的管理员 gpasswd -A 用户名 组名
修改文件的所有者,所属组:chown chgrp
chown 用户名 文件名
chgrp 组名 文件名
切换:
切换用户:su - 用户名
通过组密码,切换用户组(将不是该组的用户加入该组) : newgrp 组名
查看:
查看所属组: groups 用户名
查看用户id和组的信息: id
用户沟通:
用户间实时交流:不在线的用户永远收不到
write 用户名 内容 Ctrl+d退出
Wall 内容 Ctrl+d退出 发送给所有人
配置文件:
登录配置:
登录设置:定义了添加用户时缺省的设置信息
/etc/login.defs
/etc/default/useradd
登录中:
用户信息文件 /etc/passwd 格式:【 用户名:密码位:UID:GID:注释:宿主目录:Shell类型】 每一行对应一个用户,对于普通用户时只读文件
用户密码文件 /etc/shadow 格式:【用户名:加密密码:最后修改时间:修改最小间隔:修改最大间隔:警告时间:闲置时间:失效时间:标志】
注:手动将用户密码置空,该用户可以不需要密码登录系统(忘记密码时可以采用哦)
备注:系统是先将密码存到/passwd,然后转换到/shadow中;只是系统自动转换;
新用户信息文件 /etc/skel
注:每天添加一个用户,系统会自动将/skel文件夹中文件拷贝一份到该用户的宿主目录中;
因此,手动添加用户步骤:
1.文本编辑修改/passwd文件
2.建立宿主目录,别忘了目录权限的修改
3.手动将/skel下的文件copy一份到该用户的宿主目录中;
登录提示信息:
用户登录前信息文件 /etc/issue
用户登录后信息文件 /etc/motd
用户组信息:
用户组文件 /etc/group 格式:【 组名:组密码位:GID:组内用户】
用户组密码文件 /etc/gshadow
注:组密码位,不是组的用户享受该组的服务;但是有些Liunx并不支持;
通过组密码,切换用户组(将不是该组的用户加入该组) : newgrp 组名
从零开始学Linux系统(五)用户管理和权限管理的更多相关文章
- Linux系统下用户与组的管理
Linux系统下用户与组的管理 一.用户及组基本概述 Linux 系统上,用户管理是基于用户名和密码的方式进行资源的分配. 1.uid(用户身份标识) (1)root用户 uid为0 (2)普通用户: ...
- (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理
用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李 ...
- 从零开始学Linux系统(一)之引导流程解析
Linux系统:分时多用户多任务的操作系统: Linux系统引导流程: inittab配置文件中: 定义了linux系统的运行的7个级别:从0~6 0.6:分别代表关机和重启,不建议设置为默认的运行级 ...
- 从零开始学Linux系统(二)之基本操作指令
ifconfigping ip地址帮助:ping -t ip地址ping -c 次数 ip地址ping -s 包的大小关机重启:shutdown -h now reboot清屏:clear == C ...
- Linux基础入门-用户及文件权限管理
一.Linux用户管理: 不同的用户的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于Linux的用户管理和权限机制,不同用户不能轻易查看.修改彼此的文件. 1. 查看用户: wh ...
- 从零开始学Linux系统(三)安装CentOS-7及软件包管理操作
推荐博文: VirtualBox安装CentOS7步骤详解: https://my.oschina.net/AaronDMC/blog/840753 如何安装CentOS7字符界面 :http://b ...
- 从零开始学Linux系统(四)之Vi/Vim操作指令
模式切换: 编辑模式 <-- [:]<--命令模式 -->[a.i.o A.I.O]--> 插入模式 编辑模式操作: 设置行号 :set nu :set nonu 复制 ...
- 十天学Linux内核之第三天---内存管理方式
原文:十天学Linux内核之第三天---内存管理方式 昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今 ...
- Linux学习--4.用户和组的管理
用户和组的管理 前言 本篇文章主要讲Linux系统下用户和组的概念,还有添加用户和组,修改用户和组的基本操作,会涉及不少与之相关的配置文件与命令的介绍,几乎所有 正文 首先,简单提下概念,用户是操作系 ...
随机推荐
- PS 证件照换颜色
1.打开要修改的图片,然后先Ctrl+J备份一份 2.点击魔法棒,点击要换颜色的地方,如衣服,之后会出现虚线,如果自动选择的不全,可以按住Shift键自行选择区域 3.然后Shift+Fn+F5(由于 ...
- 「日常训练」Two Substrings(Codeforces Round 306 Div.2 A)
题意与分析 一道非常坑的水题.分析醒了补. 代码 #include <bits/stdc++.h> #define MP make_pair #define PB emplace_back ...
- 「日常训练」COMMON 约数研究(HYSBZ-1968)
题意与分析 感谢https://www.cnblogs.com/Leohh/p/7512960.html的题解.这题话说原来不在我的训练范围,正好有个同学问我,我就拿来做做.数学果然不是我擅长的啊,这 ...
- caffe Mac 安装
参考了 https://zhuanlan.zhihu.com/p/24853767 安装caffe的依赖项 brew install --fresh -vd snappy leveldb gflags ...
- 对HashMap进行排序
首先来看看Map集合获取元素的三种常见方法keySet().values().entrySet() 1. values():返回map集合的所有value的Collection集合(于集合中无序存放) ...
- EasyUI学习心得
因为要修改十几年前的一个项目界面,打9月份开始学习EasyUI,很多事情都要自己试过才知道,小问题会浪费很多时间.所以,就在此记录一下,随时更新. 一.引号 EasyUI的自定义关键字的识别,API文 ...
- 以太坊开发(二)使用Ganache CLI在私有链上搭建智能合约
以太坊开发(二)使用Ganache CLI在私有链上搭建智能合约 在上一篇文章中,我们使用Truffle自带的客户端Truffle Develop,在私有链上搭建并运行了官方提供的WebPack智能合 ...
- Centos/Linux 下升级python2.7至3.5.0
(一) 安装Python3.5 (1)在安装python之前,因为linux系统下默认没有安装wget,gcc,首先安装wget,gcc: [root@node6 python_scripts]# y ...
- 【树莓派 Raspberry-Pi 】系统安装及一些必要的配置
上周六刚收到我的小电脑,被无线设置卡住了,文章并非原创,参考了几个朋友的折腾经历,自己整理下备忘,也希望能帮到和我一样在树莓派方面小白的人,也希望可以和更多有这方面兴趣的朋友共同交流 0. 操作系统下 ...
- 《剑指Offer》题一~题十
一.赋值运算符函数 题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数. class CMyString { public: CMyString(char *pData = nul ...