當前位置:首頁 » 操作系統 » linux配置sudo

linux配置sudo

發布時間: 2022-12-14 06:51:50

linux裡面su和sudo區別是什麼

1、內容不同

su命令:用於切換用戶,substitute英文含義「代替」的意思。

sudo命令:為superuser do 的簡寫,即使用超級用戶來執行命令,一般是指root用戶。

2、用法不同

su命令:不加用戶名默認是切換為root用戶,切當前目錄不改變,其他環境變數不變。

sudo命令:查看當前用戶可以用sudo執行的命令都有哪些。

3、環境不同

su命令:切換到root用戶,但是並沒有轉到root用戶家目錄下,即沒有改變用戶的環境。

sudo命令:是當前用戶切換到root,然後以root身份執行命令,執行完成後,直接退回到當前用戶,而這些的前提是要通過sudo的配置文件/etc/sudoers來進行授權。

su和sudo各有優點,適當用於預期的用例時,兩者都表現不俗。我偏愛用su處理自己的大部分工作,因為它最適合我和我的工作流程。

⑵ linux設置為區域網主機

1、激活IP轉發

為了設置網路共享,你需要在linux主機上更改一個內核參數來使能IP轉發功能。內核啟動參數設定在/etc/sysctl.conf文件中。

打開這個文件,定位到含有"# net.ipv4.ip_forward = 0"的這一行,移除#號(即取消注釋),然後將其值設置為1,改好之後應該和下面的一致。

1.net.ipv4.ip_forward = 1

你還要使激活IP轉發功能生效,通過執行下面的命令:

$ sudo sysctl -w net.ipv4.ip_forward=1

$ sudo sysctl -p

2、NAT配置

另一個網路共享的重要部分是NAT配置,這可以通過使用iptables的命令,iptables包含四個防火牆的規則表:

·FILTER (默認表格)

·NAT

·MANGLE

·RAW

這個教程中我們將僅使用兩個表格:FILTER和NAT表格。

首先,刷新所有活躍的防火牆的規則。

$ sudo iptables -X

$ sudo iptables -F

$ sudo iptables -t nat -X

$ sudo iptables -t nat -F

在輸入表格中,你需要設置轉發鏈(FORWARD)成可接受的(ACCEPT)目的地,因此所有通過主機的數據包將會被正確的處理。

$ sudo iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

$ sudo iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

在NAT表中,你必須為你的WAN口啟用IP偽裝功能,我們假設WAN口協議是wlx085700c5b983。為了在wlx085700c5b983介面上使能IP偽造技術,我們使用以下的命令(wlx085700c5b983為可聯網網卡名字):

$ sudo iptables -t nat -I POSTROUTING -o wlx085700c5b983 -j MASQUERADE

3、配置私有IP地址

在linux主機上的所有配置完成後,你需要配置其他設備(linux/windows的PC或筆記本)的DNS伺服器以及默認網關,讓它們的數據 流可以指向linux主機。注意你不需要在linux主機上設置一個DNS伺服器,從其他設備發出的每一個DNS請求都會通過上游的ISP自動轉發到linux主機上。

如果你的其他設備上用的系統是linux,你可以通過以下命令來更改他們的默認網關和DNS伺服器。假設你的網段是192.168.1.0/24的私有IP地址網段,linux主機上綁定的IP地址是192.168.1.1。

$ sudo ip route del default

$ sudo ip route add default via 192.168.1.1

$ sudo sh -c "echo 'nameserver 192.168.1.1' > /etc/resolv.conf"

如果還有其他的linux設備,那麼你可以重復以上命令。

如果你有windows設備,你可以通過控制面板的網路連接屬性來更改默認網關和DNS伺服器。

4、完整的腳本

這是一個在linux主機上設置網路連接共享的一個完整的腳本。WAN口(ppp0協議)需要根據你具體的網路介面協議來替換。

1.$ sudo vi /usr/local/bin/netshare

#!/bin/bash

## Internet connection shating script

sysctl -w net.ipv4.ip_forward=1

sysctl -p

iptables -X

iptables -F

iptables -t nat -X

iptables -t nat -F

iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -I FORWARD  -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -t nat -I POSTROUTING -o wlx085700c5b983 -j MASQUERADE

保存以上的腳本為/usr/local/bin/netshare,然後添加可執行許可權通過執行下面的命令。wlx085700c5b983為可聯網網卡名字

1.$ sudo chmod +x /usr/local/bin/netshare

如果你需要這個腳本開機啟動,你需要在/etc/rc.local文件中執行這個腳本,並在該文件中的"exit 0"之前添加下面一行。

1./usr/local/bin/netshare

主機1設置完畢。

內網主機設置及主機2

1.打開配置文件sudo vim /etc/network/interfaces

添加下列行:

gateway   192.168.0.1(指定網關--主機1的內網ip)

dns-nameservers 10.1.1.1(DNS和主機1的DNS是一樣的)

2.重啟網路sudo /etc/init.d/networking restart

然後看看現在是否已連網了呢(sudo apt-get update)

NFS:

在主機1上

sudo apt-get install nfs-server(安裝所需的軟體)

打開文件sudo vi /etc/exports

/home/aaa    *(rw,sync)

sudo showmount -e(可查看共享的文件夾

在主機2上

sudo apt-get install nfs-common

sudo mkdir /home/bbb

sudo mount -t nfs 192.168.0.1:/home/aaa /home/bbb

然後cd /home/bbb

touch 123.txt

你可以從主機1上看到/home/aaa文件夾里多了個文件123.txt

到此結束。

先將腳本復制或者軟連接到/etc/init.d/目錄下,假設我在當前目錄創建一個start-zk.sh的文件,用於開機自啟動zookeeper。注意使用#!/bin/bash開頭:

#!/bin/bash

some command

賦予文件start-zk.sh文件可執行許可權

chomd +xstart-zk.sh

執行命令,將腳本添加到初始化執行的隊列中去:

update-rc.d start-zk.sh d efaults

卸載啟動腳本的方法

cd/etc/init.dsudoupdate-rc.d-fstart-zk.sh remove

update-rc.d 命令參考: http://blog.csdn.net/shb_derek1/article/details/8489112

wget -qO- ifconfig.me/ip

curl ifconfig.me

⑶ linux/centos普通用戶sudo開啟sftp

一般情況下,從安全考慮,root是禁止ssh登錄,普通用戶通過sudo操作,一般都沒問題,但是要通過ftp傳輸文件就麻煩了,文件是屬於root用戶的,普通用戶即使等登錄也不能更改文件,也要加上sudo命令才能更改文件,通過winscp軟體可以實現實現這個功能,詳細配置查看這個帖子:

http://blog.csdn.net/xuejinliang/article/details/52301349

配置圖1(http://upload-images.jianshu.io/upload_images/3727878-911d343f96035822.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

配置-高級-SFTP    sudo /usr/libexec/openssh/sftp-server

配置圖2(http://upload-images.jianshu.io/upload_images/3727878-52fa5c95dcc9d859.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

配置-高級-Shell   sudo -i

附加背景知識:

https://en.wikibooks.org/wiki/OpenSSH/Cookbook/File_Transfer_with_SFTP

在主流linux系統版本當中,默認都有安裝openssl和openssh包,都有ssh命令,也就是說默認安裝好了SFTP伺服器和sftp命令,不需要額外配置vsftp。

sftp有兩種實現

1.sftp-server默認實現

2.internal-sftp可更改用戶對應的目錄

本來考慮不用sudo,而是通過internal-sftp來實現,把普通用戶加入到root用戶組,把文件的root用戶組許可權加上寫的許可權來實現的,後來發現沒用,

因為目錄許可權設置要遵循2點:

ChrootDirectory設置的目錄許可權及其所有的上級文件夾許可權,屬主和屬組必須是root;

ChrootDirectory設置的目錄許可權及其所有的上級文件夾許可權,只有屬主能擁有寫許可權,許可權最大設置只能是755。

如果不能遵循以上2點,即使是該目錄僅屬於某個用戶,也可能會影響到所有的SFTP用戶。

⑷ linux終端用戶執行不了命令,需要配sudo 怎麼配置

配置sudo的配置文件在/etc/sudoers裡面,一般通過visudo命令來安全打開編輯。查看/etc/sudoers的用法可以使用命令:
man
5
sudoers。在/etc/sudoers文件裡面主要包括這兩部分:
1.
別名設置
別名主要包括這幾種:User_Alias,Host_Alias,Runas_Alias,Cmnd_Alias,分別是用戶別名,主機別名,運行用戶別名,命令別名。設置這幾個別名的命令主要是為了配置方便,這個很類似linux用戶群組或是資料庫中角色的作用,有了別名便可以批量的賦予許可權。
設置方法
Alias_Type
alias_name
=
name1,
name2,
name3,
例如User_Alias
User1
=
user1,
user2,
user3。其他類型的alias設置方法類似。
2.
真正的sudo
entry
這個就是真正配置哪些用戶可以使用哪些命令了(你甚至可以不使用別名設置那部分)。
格式為:用戶名(用戶別名)
主機名(主機別名)=[(運行用戶或是Runas_Alias)可選]
[tag可選]
可以執行的命令(或Cmmd_Alias)
這樣描述語法很生硬,不易理解,舉例子
user1
host1
=
/bin/kill
#
user1
可以在host1上使用命令/bin/kill
user1
host1
=
NOPASSWD:
/bin/kill
#
user1
可以在host1上使用命令/bin/kill
同時可以不必輸入密碼(這里就是使用了NOPASSWD
#
這個tag,默認是PASSWD)
user1
host1
=
NOPASSWD:
/bin/kill
,
PASSWORD:
/bin/ls
#
user1
可以在host1上使用命令/bin/kill無需輸入密碼,但是使用/bin/ls則需要輸入密碼
user1
host1
=
(opterator)
/bin/kill
#
user1
可以在host1上使用命令/bin/kill但是必須是以operator用戶運行這個命令,等價於
#
su
-u
opertor
/bin/kill
user1
host1
=
(:group_name)
/bin/kill
#
user1
可以在host1上使用命令/bin/kill,且必須以group_name這個用戶群組裡面的用戶來運行。
%group_name
host1
=
/bin/kill
#
所有group_name裡面的用戶都可以在host1上執行/bin/kill(linux中一般代表整個用戶群組用
#
%group_name)
再舉個實際例子,我之前對sudo
su這個命令不理解,為什麼我可以直接就su到root用戶了呢,連密碼都不需要?查看了一下sudoers文件才知道原來裡面有這么一行:
xxx
ALL=NOPASSWD:
/bin/su

⑸ linux下面的sudo命令什麼意思

sudo 表示 「superuser do」。 它允許已驗證的用戶以其他用戶的身份來運行命令。其他用戶可以是普通用戶或者超級用戶。然而,大部分時候我們用它來以提升的許可權來運行命令。

apt 是Linux下的一款安裝包管理工具,是一個客戶/伺服器系統。sudo apt-get是用來安裝linux下的各種工具包的。

(5)linux配置sudo擴展閱讀:

注意事項:

編輯sudo的配置文件/etc/sudoers是一般不要直接使用vi(vi /etc/sudoers)去編輯,因為sudoers配置有一定的語法,直接用vi編輯保存系統不會檢查語法,如有錯也保存了可能導致無法使用sudo工具,而使用visudo命令去配置保存時會進行語法檢查,有錯會有提示。

命令一定要使用絕對路徑,避免其他目錄的同名命令被執行,造成安全隱患 ,因此使用的時候也是使用絕對路徑!

⑹ Linux系統創建用戶並賦予用戶sudo許可權

sudo是linux下常用的允許普通用戶使用超級用戶許可權的工具,允許系統管理員讓普通用戶執行一些或者全部的root命令,如halt,reboot,su等等。這樣不僅減少了root用戶的管理時間,同樣也提高了安全性。Sudo不是對shell的一個代替,它是面向每個命令的。

sudo的配置文件是 /etc/sudoers 文件,它允許系統管理員集中的管理用戶的使用許可權和使用的主機。

sudo都提供了一個編輯該文件的命令:visudo 來對該文件進行修改。強烈推薦使用該命令修改 sudoers,因為它會幫你校驗文件配置是否正確,如果不正確,在保存退出時就會提示你哪段配置出錯的。

打開 /etc/sudoers 文件可以發現一個特殊的 wheel 組

第2行表示:wheel 組中的用戶可以在ALL/任意主機上以任意用戶執行所有的命令,不過需要輸入該用戶自己的密碼。

第4行在第2行的基礎上增加了NOPASSWD,意思是無需輸入密碼。不過這行默認情況下是注釋掉的。

這樣我們只需要創建一個專用的賬戶,然後將其添加到wheel組。

創建用戶jupiter

將用戶添加到wheel組中

現在用戶jupiter就可以執行一些原本root用戶才能執行的命令。

首先切換到 jupiter 用戶

嘗試切換到root用戶主目錄被拒絕

這次使用sudo

然後就可以成功切換到root用戶主目錄了。

如果不想輸入密碼,那麼可以將上面提到的第4行的注釋字元 # 去掉。

Linux命令手冊:https://linux.cmsblogs.cn/

⑺ linux下sudo不要密碼怎麼實現

設置linux下sudo不要密碼的步驟如下:

1、首先以root用戶登錄,並且新建一個普通的用戶,用戶名為test。

這樣就解決了「linux下sudo不要密碼」的問題。

(7)linux配置sudo擴展閱讀:

1)Linux由眾多微內核組成,其源代碼完全開源;

2)Linux繼承了Unix的特性,具有非常強大的網路功能,其支持所有的網際網路協議,包括TCP/IPv4、TCP/IPv6和鏈路層拓撲程序等,且可以利用Unix的網路特性開發出新的協議棧;

3)Linux系統工具鏈完整,簡單操作就可以配置出合適的開發環境,可以簡化開發過程,減少開發中模擬工具的障礙,使系統具有較強的移植性;

⑻ Linux入門系列——su和sudo

su和sudo這兩個命令是Linux運維必須要會的,通常在生產環境中都是使用普通帳號來登錄,再使用su或sudo來執行一些管理命令。

su:run a shell with substitute user and group ids

-,-l,--login 切換後使用指定用戶的的shell。

-c,--command=COMMAND 可以在不切換當前shell的情況下,用指定的用戶來執行一個命令;

如果在su的時候沒有加」-「或「-l」或「--login」那麼默認的會使用 當前用戶 的shell來執行

sudo的配置文件是: /etc/sudoers ,該文件可以定義哪個用戶可以在哪個機器上以哪個用戶的身份來執行哪些命令;

在配置sudo時必須使用 visudo 來編輯配置文件,因為使用visudo可以檢查修改後的文件的語法是否正確;

可以將上面的配置行分成四部分:part1 part2 part3 part4

例如:

那麼如果用戶的數量過多的時候是不是要為每個用戶來創建一個條目呢,很顯示這樣做是不科學的。所以sudo就引入了別名的概念,其實和組也差不多;

alias定義的語法:

要注意的是,這個Alias的名稱一定要大寫;

user1是一個用戶,user2是一個組,所以user2的前面要加上%

可以使用主機名,IP地址,網段(網段的掩碼可以寫成255.255.255.0,也可以寫成/24)

命令必須使用絕對路徑。如果只指定了一個目錄,那麼用戶就可以執行該目錄下的所有的文件;上面的「=」右邊的都可以使用「!」來取反。表示除了xxx以外;

例子 :請允許user1,user2,user3在192.168.20.44和192.168.10.0/24網段的機器上使用sudo切換到root用戶來執行useradd和setup命令;

然後就可以使用user1,user2,user3這三個用戶去測試了;

注意:當用戶第一次執行sudo命令的時候是需要用戶輸入自己的密碼的。當第一次輸入正確後,這個密碼就會被緩存5分鍾,在5分鍾內用戶再次使用sudo來切換身份執行命令的時候就不需要再次輸入自己的密碼。

這樣呢有些時候會有一個安全隱患,所以為了去掉這個5分鍾,可以在使用sudo命令的時候加上「-k」參數,這樣用戶在每次執行sudo命令的時候都會讓用戶輸入自己的密碼。

如果想讓某個用戶在執行sudo的時候不需要輸入自己的密碼,那麼可以在命令的前面添加NOPASSWD。/etc/sudoers的內容如下:

這樣的話,user1,user2,user3這三個用戶在執行指定的命令的時候就不需要輸入自己的密碼了。

如果其中的命令有的需要輸入密碼,有的不需要輸入密碼的話,那就把PASSWD:寫在那些命令的前面。或是把NOPASSWD:寫在最後一個命令中;

例子:讓用戶user4使用passwd來管理用戶的密碼,但是不能給root用戶設置密碼

注意:如果最後不加上!/usr/bin/passwd root的話,那麼會有很大的漏洞,user4可以修改root用戶的密碼;當添加上後,user4再次執行sudo passwd root的時候就會提示:

⑼ 如何配置Linux系統sudo命令的許可權

1、編輯sudo配置文件:visudo;
2、允許用戶kk執行sudo;

3、允許kk執行mount.cifs而不用輸入密碼。

以上就是如何配置Linux系統sudo命令的許可權的全部內容了,只有配置好許可權才能更方便地使用sudo命令。

熱點內容
網易我的世界伺服器組件怎麼安裝 發布:2025-05-15 05:16:58 瀏覽:311
如何復制密碼狗 發布:2025-05-15 05:15:28 瀏覽:737
c語言報告三 發布:2025-05-15 05:10:37 瀏覽:844
09壓縮餅干 發布:2025-05-15 05:05:58 瀏覽:279
迭代法編程c 發布:2025-05-15 04:58:01 瀏覽:815
用什麼dns伺服器地址快 發布:2025-05-15 04:52:59 瀏覽:27
手機端so反編譯 發布:2025-05-15 04:50:55 瀏覽:610
linuxlamp安裝 發布:2025-05-15 04:50:45 瀏覽:578
sqlplus緩存區怎麼設置 發布:2025-05-15 04:50:44 瀏覽:858
shell腳本環境變數 發布:2025-05-15 04:45:18 瀏覽:693