《鸟哥的Linux私房菜》学习笔记(5)——权限管理
一、权限的基本概念
权限:访问计算机资源或服务的访问能力。
Linux中,每一个资源或者服务的权限,分别定义了三组用户的使用能力。
- 文件的属主(u)
- 文件的属组(g)
- 其他用户(o)
对于每一类用户来说,可以对某个文件有三种权限:
- r:可读,可以使用类似cat,more,less等命令查看文件内容。
- w:可写,可以编辑或者删除此文件。
- x:可执行,可以在命令提示符下,当做命令提交给内核运行,一般对文件默认没有此权限,否则可能执行恶意代码。
对于目录来说,
- r:可以对此目录执行ls以列出内部的所有文件
- w:可以在此目录中创建文件。
- x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息。
进程的安全上下文(secure context): 进程是用户发起的,是用户操作计算机的代理。进程也是有属组和属主的。谁发起的进程,进程就以谁的身份运行。比如,A和B同时执行ls命令,这两个进程属 主不同,因此获得对某文件的权限也不同,如果文件的属主刚好和进程A的属主相同,那么A就可以访问该文件,也就是说有访问权限。如下代码,drwxr-xr-x 3 root root 4096 Oct 16 20:57 m,第一个字段drwxr-xr-x中rwx为属主的权限,r-x为属组的权限,r-x为其他用户的访问权限。第三个字段便是属主,第四个字段是属组。
root@hao:~# ls -l
total 8
drwxr-xr-x root root Oct : m
drwxr-xr-x root root Oct : test
二、权限管理
1、chown(chage owner)改变文件属主
只有管理员才可以改变文件属主
命令格式:chown username file...更改文件的属主
chown username:groupname file...更改文件的属主和属组
chown :groupname file 更改文件的属组
[hadoop@hao tmp]$ ll /tmp
total
-rw-rw-r--. hadoop hadoop Nov : a.hadoop
-rw-r--r--. hadoop mygroup Nov : b.hadoop
...
[root@hao ~]# chown hao /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw-rw-r--. hao hadoop ?. : a.hadoop
-rw-r--r--. hadoop mygroup ?. : b.hadoop
... [root@hao ~]# mkdir /tmp/testdir
[root@hao ~]# ll /tmp
total
-rw-rw-r--. hao hadoop Nov : a.hadoop
-rw-r--r--. hadoop mygroup Nov : b.hadoop
...
drwxr-xr-x. root root Nov : testdir
[root@hao ~]# chown hao /tmp/testdir
[root@hao ~]# ll /tmp
total
-rw-rw-r--. hao hadoop Nov : a.hadoop
-rw-r--r--. hadoop mygroup Nov : b.hadoop
...
drwxr-xr-x. hao root Nov : testdir
命令选项:
-R:修改目录及其内部文件的属主。不使用该选项时,只更改目录的属主,不更改目录内文件的属主。
--reference:更改文件的属主为指定文件的属主。chown --reference =/path file...
[root@hao ~]# ll /tmp
total
-rw-rw-r--. hao hadoop Nov : a.hadoop
-rw-r--r--. hadoop mygroup Nov : b.hadoop
...
[root@hao ~]# chown --reference=/tmp/b.hadoop /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw-rw-r--. hadoop mygroup Nov : a.hadoop
-rw-r--r--. hadoop mygroup Nov : b.hadoop
...
2、chgrp(change group)修改属组
使用方法同上。
3、chmod 更改文件权限
a、修改三类用户的权限
命令格式:chmod MODE filename...
命令选项:
-R:
--reference:
如下代码是更改test文件的三类用户权限为750即为rwxr-x---
chmod test
b、修改某类用户或某些类用户权限
命令格式:chmod 用户类别=MODE filename
[root@hao ~]# ll /tmp
total
-rw-rw-r--. hadoop mygroup Nov : a.hadoop
...
[root@hao ~]# chmod u=rw /tmp/a.hadoop
[root@hao ~]# chmod g=rw /tmp/a.hadoop
[root@hao ~]# chmod o=rw /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw-rw-rw-. hadoop mygroup Nov : a.hadoop
...
[root@hao ~]# chmod og=r,u=w /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
--w-r--r--. hadoop mygroup Nov : a.hadoop
...
c、修改某类用户的某位或某些位权限
命令格式:chmod 用户类别+(-)MODE filename
[root@hao ~]# chmod a+r /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw-r--r--. hadoop mygroup Nov : a.hadoop
...
[root@hao ~]# chmod a-r /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
--w-------. hadoop mygroup Nov : a.hadoop
...
[root@hao ~]# chmod u+r /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw-------. hadoop mygroup Nov : a.hadoop
...
[root@hao ~]# chmod u+r,g+x /tmp/a.hadoop
[root@hao ~]# ll /tmp
total
-rw---x---. hadoop mygroup Nov : a.hadoop
...
三、创建文件的默认权限
创建一个文件,它的默认权限是:666-umask的前三位
创建一个目录,它的默认权限是:777-umask的前三位。 umask是遮罩码
[root@hao ~]# cd /tmp
[root@hao tmp]# touch test
[root@hao tmp]# ll test
-rw-r--r--. root root Nov : test
[root@hao tmp]# umask
[root@hao tmp]# mkdir test1
[root@hao tmp]# ls -dl test1
drwxr-xr-x. root root Nov : test1
umask 可以直接设置用户的遮罩码 如 umask 202 则为设置当前用户的遮罩码。但是文件默认不能有执行权限,因此如果算得的结果有执行权限则会自动加1!!
该用户退出后,umask会默认恢复为初始值。
四、bash配置文件
bash的配置文件分为两种
- 全局配置
- /etc/profile,/etc/profile.d/*.sh,/etc/bashrc
- 个人配置
- ~/.bash_profile,~/.bashrc
这些文件分为两类:
- profile类文件:
- 设定环境变量
- 可以设定登录时所运行的命令或脚本
- bashrc类文件
- 设定本地变量
- 定义命令别名
五、shell 类型(用户角度)
从用户角度来说,shell分为两种类型:
- 登陆式shell
- su - username
- su -l username
- 正常通过某终端登陆的shell
非登录式shell
- su username
- 图形终端下打开命令窗口
- 自动执行的shell脚本
登录式shell读取配置文件的顺序为:
1、/etc/profile 2、/etc/profile.d/*.sh 3、~/.bash_profile 4、~/.bashrc 5、/etc/bashrc
非登录式shell读取配置文件的顺序为:
1、~/.bashrc 2、/etc/bashrc 3、/etc/profile.d/*.sh
六、练习一:创建没有家目录的openstack用户
1、创建一个没有家目录的用户openstack
[root@hao ~]# useradd -M openstack
2、复制/etc/skel 为/home/openstack
[root@hao ~]# cp -r /etc/skel /home/openstack
[root@hao ~]# finger openstack
Login: openstack Name:
Directory: /home/openstack Shell: /bin/bash
Never logged in.
No mail.
No Plan.
[root@hao ~]# ls /home
guang hadoop hao haohao openstack testuser testuser1
[root@hao ~]# id openstack
uid=(openstack) gid=(openstack) groups=(openstack)
[root@hao ~]# ll /home
total
...
drwxr-xr-x. root root Nov : openstack
...
[root@hao ~]# ls -al /home/openstack
total
drwxr-xr-x. root root Nov : .
drwxr-xr-x. root root Nov : ..
-rw-r--r--. root root Nov : .bash_logout
-rw-r--r--. root root Nov : .bash_profile
-rw-r--r--. root root Nov : .bashrc
drwxr-xr-x. root root Nov : .gnome2
drwxr-xr-x. root root Nov : .mozilla
3、修改/home/openstack及其内部文件的属主属组为openstack
[root@hao ~]# chown -R openstack:openstack /home/openstack
[root@hao ~]# ls -ld /home/openstack/
drwxr-xr-x. openstack openstack Nov : /home/openstack/
[root@hao ~]# ls -la /home/openstack/
total
drwxr-xr-x. openstack openstack Nov : .
drwxr-xr-x. root root Nov : ..
-rw-r--r--. openstack openstack Nov : .bash_logout
-rw-r--r--. openstack openstack Nov : .bash_profile
-rw-r--r--. openstack openstack Nov : .bashrc
drwxr-xr-x. openstack openstack Nov : .gnome2
drwxr-xr-x. openstack openstack Nov : .mozilla
4、修改/home/openstack及其内部文件,属组和其他用户没有任何访问权限
[root@hao ~]# chmod -R go= /home/openstack/
[root@hao ~]# ls -ld /home/openstack
drwx------. openstack openstack Nov : /home/openstack
[root@hao ~]# ls -la /home/openstack/
total
drwx------. openstack openstack Nov : .
drwxr-xr-x. root root Nov : ..
-rw-------. openstack openstack Nov : .bash_logout
-rw-------. openstack openstack Nov : .bash_profile
-rw-------. openstack openstack Nov : .bashrc
drwx------. openstack openstack Nov : .gnome2
drwx------. openstack openstack Nov : .mozilla
七、练习二:手动添加用户
需求:手动添加用户hive,属主属组均为hive,UID与GID均为5000,附加组为mygroup(已存在)
1、创建组hive
[root@hao ~]# nano /etc/grou
在该文件末尾添加组hive,同时在附加组mygroup添加用户hive
mygroup:x:502:testuser1,hive
hive:x:
2、在/etc/passwd中创建用户
hive:x:::hive:/home/hive:/bin/bash
3、在/etc/shadow中创建密码,这里的16378为距离1970年1月1日经过的天数,可以算出来。
[hao@hao ~]$ date
Tue Nov :: CST
[hao@hao ~]$ date +%s
[hao@hao ~]$ bc
bc 1.06.
Copyright -, , , , , Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
/
hive:!!:::::::
4、创建家目录并设定其属组属主为hive
[root@hao ~]# cp -r /etc/skel /home/hive
[root@hao ~]# ls /home
guang hadoop hao haohao hive openstack testuser testuser1
[root@hao ~]# chown -R hive:hive /home/hive
[root@hao ~]# ls -al /home/hive
total
drwxr-xr-x. hive hive Nov : .
drwxr-xr-x. root root Nov : ..
-rw-r--r--. hive hive Nov : .bash_logout
-rw-r--r--. hive hive Nov : .bash_profile
-rw-r--r--. hive hive Nov : .bashrc
drwxr-xr-x. hive hive Nov : .gnome2
drwxr-xr-x. hive hive Nov : .mozilla
[root@hao ~]# ls -dl /home/hive
drwxr-xr-x. hive hive Nov : /home/hive
5、修改/home/hive及其内部文件权限,使属组和其他用户没有任何访问权限
[root@hao ~]# chmod -R go= /home/hive
[root@hao ~]# ls -dl /home/hive
drwx------. hive hive Nov : /home/hive
[root@hao ~]# ls -al /home/hive
total
drwx------. hive hive Nov : .
drwxr-xr-x. root root Nov : ..
-rw-------. hive hive Nov : .bash_logout
-rw-------. hive hive Nov : .bash_profile
-rw-------. hive hive Nov : .bashrc
drwx------. hive hive Nov : .gnome2
drwx------. hive hive Nov : .mozilla
6、手动生成密码,并添加到/etc/shadow中
[root@hao ~]# openssl passwd - -salt ''
Password:
$$$2hpL/5Hu1halILqBt7TFe.
[root@hao ~]# nano /etc/shadow
《鸟哥的Linux私房菜》学习笔记(5)——权限管理的更多相关文章
- 鸟哥的Linux私房菜学习笔记——文件权限与目录配置
Linux的文件权限和目录配置 在linux中的每个用户必需属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念. (1)所有者 一般为文件的创建者,谁创建了该文件,就是天 ...
- 鸟哥的linux私房菜学习笔记 __ 命令与文件的搜寻
连续输入两次[tab]按键就能够知道使用者有多少命令可以下达.那你知不知道这些命令的完整档名放在哪里?举例来说,ls 这个常用的命令放在哪里呢? 就透过 which 或 type 来找寻吧! 范例一: ...
- 鸟哥的Linux私房菜学习笔记(1)
2014/10/29 1.档案的权限管理分为三个部分: 拥有者.群组.其他 2.ls -al 命令可以看到档案的详细信息 3.档案的属性中由十个部分构成 第一个部分是档案类型 -代表档案.d代表文件夹 ...
- 鸟哥的linux私房菜学习记录之账号管理与权限设定
每个登录者都会取到两个ID,一个使用者ID,一个群组ID
- 【鸟哥的Linux私房菜】笔记1
Linux是什么 从操作系统与cpu架构关系到linux Richard Mathew Stallman GPL 关于GNU计划 Linux的发展 Linux的核心版本 Linux的特色 Linux ...
- 鸟哥的linux私房菜学习-(一)优缺点分析以及主机规划与磁盘分区
一.linux的优缺点 那干嘛要使用Linux做为我们的主机系统呢?这是因为Linux有底下这些优点: 稳定的系统:Linux本来就是基于Unix概念而发展出来的操作系统,因此,Linux具有与Uni ...
- 【鸟哥的Linux私房菜】笔记2
Linux的应用 学习资源整理 安装记录 >< 1.Linux的应用: 网络服务器 数据库 学术机构的高效运算任务 嵌入式系统 ... 2.挂载与磁盘分区 学习资源整理 学习 1.书上的网 ...
- 【鸟哥的Linux私房菜】笔记3
正确地开机 最好不要使用root账号登陆!GNOME图形界面 View items as a list X WindowShell 文本交互界面bash是Shell的名称,Linux的默认壳程序就是b ...
- 《鸟哥的Linux私房菜》笔记——02. 关于Linux
Unix 历史 1969年以前:伟大的梦想--Bell, MIT 与 GE 的「Multics」系统 1969年:Ken Thompson 的小型 file server system 1973年:U ...
- 鸟哥的linux私房菜学习
cat /etc/shells 系统拥有的shellcat /etc/passwd 记录用户使用的shell按两次 tab 键可显示所有可执行的指令alias 查看所有命令的别名alias lm='l ...
随机推荐
- java数据结构和算法07(2-3-4树)
上一篇我们大概了解了红黑树到底是个什么鬼,这篇我们可以看看另外一种树-----2-3-4树,看这个树的名字就觉得很奇怪.... 我们首先要知道这里的2.3.4指的是任意一个节点拥有的子节点个数,所以我 ...
- 解决ARCGIS10.2与VS2013不兼容
在注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0增加类型为REG_SZ的InstallDir节点.Ins ...
- 【Oracle】曾经的Oracle学习笔记(1-3) 数据库常见用语,常见命令,创建测试表
一.数据库的登录 二.数据库常用语 三.测试表的创建,测试数据初始化 四.常见命令介绍 五.测试 user:jeffreysn:jeffrey user:systemsn:jeffrey 浏览器中输入 ...
- linux设置history历史记录
#说明export HISTSIZE=1000 #设置历史记录显示1000行export HISTTIMEFORMAT='%F %T ' #设置历史记录格式 999 2017-08-15 10:58: ...
- Node.js | 你的物联网系统,有个管家待认领
很多时候,专业的事情都要交给专业的人来做,才会更放心. 例如买了套房,交房装修完毕,欢天喜地入住后,房子的日常养护和维护之类的事情,都由谁来负责呢? 物业呗~买了房子就自然需要房子所在小区提供的物业服 ...
- LeetCode Rotate Array 翻转数组
题意:给定一个数组,将该数组的后k位移动到前n-k位之前.(本题在编程珠玑中第二章有讲) 思路: 方法一:将后K位用vector容器装起来,再移动前n-k位到后面,再将容器内k位插到前面. class ...
- c++指针二维数组
; int** G; //初始化 G = new int*[N]; ; i < N; i++) G[i] = new int[N]: //删除 ; i < N; i++) delete[] ...
- 工作流性能优化(敢问activiti有扩展性?)(2)
2015/4/17 粗略看了activiti的sql的,在ativity engine包里边: 没什么头绪,先用excel记录数据量少的时候本机的性能情况: 不打印hibernate的sql:一刷 ...
- POJ 1703 Find them, Catch them(并查集,等价关系)
DisjointSet保存的是等价关系,对于某个人X,设置两个变量Xa,Xb.Xa表示X属于a帮派,Xb类似. 如果X和Y不是同一个帮派,那么Xa -> Yb,Yb -> Xa... (X ...
- UVA 10564 Paths through the Hourglass(背包)
为了方便打印路径,考虑从下往上转移.dp[i][j][S]表示在i行j列总和为S的方案, dp[i][j][S] = dp[i+1][left][S-x]+dp[i+1][right][S-x] 方案 ...