一、權限的基本概念 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
權限: 訪問計算機資源或服務的訪問能力。
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
3
root root
4096
Oct
16
20
:
57
m
drwxr-xr-x
2
root root
4096
Oct
16
22
:
00
test
?二、權限管理 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?1、chown(chage owner)改變文件屬主
只有管理員才可以改變文件屬主
命令格式: chown username file...更改文件的屬主
chown? username:groupname file...更改文件的屬主和屬組
chown :groupname file 更改文件的屬組
[hadoop@hao tmp]$
ll /
tmp
total
40
-rw-rw-r--.
1
hadoop hadoop
0
Nov
4
12
:
09
a.hadoop
-rw-r--r--.
1
hadoop mygroup
0
Nov
4
12
:
21
b.hadoop
...
[root@hao
~]#
chown
hao /tmp/
a.hadoop
[root@hao
~]#
ll /
tmp
total
40
-rw-rw-r--.
1
hao hadoop
0
11
?.
4
12
:
09
a.hadoop
-rw-r--r--.
1
hadoop mygroup
0
11
?.
4
12
:
21
b.hadoop
...
[root@hao ~]#
mkdir
/tmp/
testdir
[root@hao
~]#
ll /
tmp
total
44
-rw-rw-r--.
1
hao hadoop
0
Nov
4
12
:
09
a.hadoop
-rw-r--r--.
1
hadoop mygroup
0
Nov
4
12
:
21
b.hadoop
...
drwxr
-xr-x.
2
root root
4096
Nov
4
13
:
53
testdir
[root@hao
~]#
chown
hao /tmp/
testdir
[
root@hao
~]#
ll /
tmp
total
44
-rw-rw-r--.
1
hao hadoop
0
Nov
4
12
:
09
a.hadoop
-rw-r--r--.
1
hadoop mygroup
0
Nov
4
12
:
21
b.hadoop
...
drwxr
-xr-x.
2
hao root
4096
Nov
4
13
:
53
testdir
命令選項:
-R:修改目錄及其內部文件的屬主。不使用該選項時,只更改目錄的屬主,不更改目錄內文件的屬主。
--reference:更改文件的屬主為指定文件的屬主。chown --reference =/path file...
[root@hao ~]#
ll /
tmp
total
44
-rw-rw-r--.
1
hao hadoop
0
Nov
4
12
:
09
a.hadoop
-rw-r--r--.
1
hadoop mygroup
0
Nov
4
12
:
21
b.hadoop
...
[root@hao
~]#
chown
--reference=/tmp/b.hadoop /tmp/
a.hadoop
[root@hao
~]#
ll /
tmp
total
44
-rw-rw-r--.
1
hadoop mygroup
0
Nov
4
12
:
09
a.hadoop
-rw-r--r--.
1
hadoop mygroup
0
Nov
4
12
:
21
b.hadoop
...
2、chgrp(change group)修改屬組
使用方法同上。
3、chmod 更改文件權限
a、修改三類用戶的權限
命令格式: chmod MODE filename ...
命令選項:
-R:
--reference:
如下代碼是更改test文件的三類用戶權限為750即為rwxr-x---
chmod
750
test
b、修改某類用戶或某些類用戶權限
命令格式: chmod 用戶類別=MODE filename
[root@hao ~]#
ll /
tmp
total
44
-rw-rw-r--.
1
hadoop mygroup
0
Nov
4
12
:
09
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
44
-rw-rw-rw-.
1
hadoop mygroup
0
Nov
4
12
:
09
a.hadoop
...
[root@hao ~]#
chmod
og=r,u=
w
/tmp/
a.hadoop
[root@hao
~]#
ll /
tmp
total
44
--
w
-r--r--.
1
hadoop mygroup
0
Nov
4
12
:
09
a.hadoop
...
c、修改某類用戶的某位或某些位權限
命令格式: chmod 用戶類別+(-)MODE filename
[root@hao ~]#
chmod
a+r /tmp/
a.hadoop
[root@hao
~]#
ll /
tmp
total
44
-rw-r--r--.
1
hadoop mygroup
0
Nov
4
12
:
09
a.hadoop
...
[root@hao
~]#
chmod
a-r /tmp/
a.hadoop
[root@hao
~]#
ll /
tmp
total
44
--
w
-------.
1
hadoop mygroup
0
Nov
4
12
:
09
a.hadoop
...
[root@hao
~]#
chmod
u+r /tmp/
a.hadoop
[root@hao
~]#
ll /
tmp
total
44
-rw-------.
1
hadoop mygroup
0
Nov
4
12
:
09
a.hadoop
...
[root@hao
~]#
chmod
u+r,g+x /tmp/
a.hadoop
[root@hao
~]#
ll /
tmp
total
44
-rw---x---.
1
hadoop mygroup
0
Nov
4
12
:
09
a.hadoop
...
三、創建文件的默認權限 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
創建一個文件,它的默認權限是:666-umask的前三位
創建一個目錄,它的默認權限是:777-umask的前三位。 umask是遮罩碼
[root@hao ~]#
cd /
tmp
[root@hao tmp]#
touch
test
[root@hao tmp]#
ll test
-rw-r--r--.
1
root root
0
Nov
4
16
:
39
test
[root@hao tmp]#
umask
0022
[root@hao tmp]#
mkdir
test1
[root@hao tmp]#
ls
-
dl test1
drwxr
-xr-x.
2
root root
4096
Nov
4
16
:
41
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
=
1005
(openstack) gid=
1005
(openstack)
groups
=
1005
(openstack)
[root@hao
~]#
ll /
home
total
28
...
drwxr
-xr-x.
4
root root
4096
Nov
4
14
:
53
openstack
...
[root@hao ~]#
ls
-al /home/
openstack
total
28
drwxr
-xr-x.
4
root root
4096
Nov
4
14
:
53
.
drwxr
-xr-x.
9
root root
4096
Nov
4
14
:
53
..
-rw-r--r--.
1
root root
18
Nov
4
14
:
53
.bash_logout
-rw-r--r--.
1
root root
176
Nov
4
14
:
53
.bash_profile
-rw-r--r--.
1
root root
124
Nov
4
14
:
53
.bashrc
drwxr
-xr-x.
2
root root
4096
Nov
4
14
:
53
.gnome2
drwxr
-xr-x.
4
root root
4096
Nov
4
14
:
53
.mozilla
3、修改/home/openstack及其內部文件的屬主屬組為openstack
[root@hao ~]#
chown
-R openstack:openstack /home/
openstack
[root@hao
~]#
ls
-
ld
/home/openstack/
drwxr
-xr-x.
4
openstack openstack
4096
Nov
4
14
:
53
/home/openstack/
[root@hao ~]#
ls
-la /home/openstack/
total
28
drwxr
-xr-x.
4
openstack openstack
4096
Nov
4
14
:
53
.
drwxr
-xr-x.
9
root root
4096
Nov
4
14
:
53
..
-rw-r--r--.
1
openstack openstack
18
Nov
4
14
:
53
.bash_logout
-rw-r--r--.
1
openstack openstack
176
Nov
4
14
:
53
.bash_profile
-rw-r--r--.
1
openstack openstack
124
Nov
4
14
:
53
.bashrc
drwxr
-xr-x.
2
openstack openstack
4096
Nov
4
14
:
53
.gnome2
drwxr
-xr-x.
4
openstack openstack
4096
Nov
4
14
:
53
.mozilla
4、 修改/home/openstack及其內部文件 ,屬組和其他用戶沒有任何訪問權限
[root@hao ~]#
chmod
-R go= /home/openstack/
[root@hao ~]#
ls
-
ld
/home/
openstack
drwx
------.
4
openstack openstack
4096
Nov
4
14
:
53
/home/
openstack
[root@hao
~]#
ls
-la /home/openstack/
total
28
drwx
------.
4
openstack openstack
4096
Nov
4
14
:
53
.
drwxr
-xr-x.
9
root root
4096
Nov
4
14
:
53
..
-rw-------.
1
openstack openstack
18
Nov
4
14
:
53
.bash_logout
-rw-------.
1
openstack openstack
176
Nov
4
14
:
53
.bash_profile
-rw-------.
1
openstack openstack
124
Nov
4
14
:
53
.bashrc
drwx
------.
2
openstack openstack
4096
Nov
4
14
:
53
.gnome2
drwx
------.
4
openstack openstack
4096
Nov
4
14
:
53
.mozilla
七、練習二:手動添加用戶 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
需求:手動添加用戶hive,屬主屬組均為hive,UID與GID均為5000,附加組為mygroup(已存在)
1、創建組hive
[root@hao ~]#
nano /etc/
grou
在該文件末尾添加組hive,同時在附加組mygroup添加用戶hive
mygroup:x:502:testuser1,hive
hive:x:
5000
2、在/etc/passwd中創建用戶
hive:x:
5000
:
5000
:hive:/home/hive:/bin/bash
3、在/etc/shadow中創建密碼,這里的16378為距離1970年1月1日經過的天數,可以算出來。
[hao@hao ~]$
date
Tue Nov
4
15
:
17
:
38
CST
2014
[hao@hao ~]$
date
+%
s
1415085473
[hao@hao ~
]$
bc
bc
1.06
.
95
Copyright
1991
-
1994
,
1997
,
1998
,
2000
,
2004
,
2006
Free Software Foundation, Inc.
This is
free
software with ABSOLUTELY NO WARRANTY.
For details type `warranty
'
.
1415085473
/
86400
16378
hive:!!:
16378
:
0
:
99999
:
7
:::
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
28
drwxr
-xr-x.
4
hive hive
4096
Nov
4
15
:
25
.
drwxr
-xr-x.
10
root root
4096
Nov
4
15
:
25
..
-rw-r--r--.
1
hive hive
18
Nov
4
15
:
25
.bash_logout
-rw-r--r--.
1
hive hive
176
Nov
4
15
:
25
.bash_profile
-rw-r--r--.
1
hive hive
124
Nov
4
15
:
25
.bashrc
drwxr
-xr-x.
2
hive hive
4096
Nov
4
15
:
25
.gnome2
drwxr
-xr-x.
4
hive hive
4096
Nov
4
15
:
25
.mozilla
[root@hao
~]#
ls
-dl /home/
hive
drwxr
-xr-x.
4
hive hive
4096
Nov
4
15
:
25
/home/hive
5、 修改/home/hive及其內部文件權限,使屬組和其他用戶沒有任何訪問權限
[root@hao ~]#
chmod
-R go= /home/
hive
[root@hao
~]#
ls
-dl /home/
hive
drwx
------.
4
hive hive
4096
Nov
4
15
:
25
/home/
hive
[root@hao
~]#
ls
-al /home/
hive
total
28
drwx
------.
4
hive hive
4096
Nov
4
15
:
25
.
drwxr
-xr-x.
10
root root
4096
Nov
4
15
:
25
..
-rw-------.
1
hive hive
18
Nov
4
15
:
25
.bash_logout
-rw-------.
1
hive hive
176
Nov
4
15
:
25
.bash_profile
-rw-------.
1
hive hive
124
Nov
4
15
:
25
.bashrc
drwx
------.
2
hive hive
4096
Nov
4
15
:
25
.gnome2
drwx
------.
4
hive hive
4096
Nov
4
15
:
25
.mozilla
? 6、手動生成密碼,并添加到/etc/shadow中
?
[root@hao ~]#
openssl
passwd
-
1
-salt
'
12345678
'
Password:
$
1
$
12345678
$2hpL/
5Hu1halILqBt7TFe.
[root@hao
~]# nano /etc/shadow
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

