Linux安裝基本命令大全
Linux常用命令,你還能記得多少呢?下文是我為大家准備的Linux常用命令,一起來看看吧!
安裝升級
查看軟體xxx安裝內容
dpkg -L xxx
查找軟體庫中的軟體
apt-cache search 正則表達式
或
aptitude search 軟體包
顯示系統安裝包的統計信息
apt-cache stats
顯示系統全部可用包的名稱
apt-cache pkgnames
顯示包的信息
apt-cache show k3b
查找文件屬於哪個包
dpkg -S filename
apt-file search filename
查看已經安裝了哪些包
dpkg -l
也可用
dpkg -l | less
翻頁查看
查詢軟體xxx依賴哪些包
apt-cache depends xxx
查詢軟體xxx被哪些包依賴
apt-cache rdepends xxx
增加一個光碟源
sudo apt-cdrom add
系統更新
sudo apt-get update (這一步更新包列表)
sudo apt-get dist-upgrade (這一步安裝所有可用更新)
或者
sudo apt-get upgrade (這一步安裝應用程序更新,不安裝新內核等)
清除所有已刪除包的殘餘配置文件
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
如果報如下錯誤,證明你的系統中沒有殘留配置文件了,無須擔心。
----------------------------------------------------------
dpkg: --purge needs at least one package name argument
Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --license for right license and lack of warranty (GNU GPL) [*].
Options marked [*] proce a lot of output - pipe it through `less' or `more' !
----------------------------------------------------------
編譯時缺少h文件的自動處理
sudo auto-apt run ./configure
查看安裝軟體時下載包的臨時存放目錄
ls /var/cache/apt/archives
備份當前系統安裝的所有包的列表
dpkg --get-selections | grep -v deinstall > ~/somefile
從上面備份的安裝包的列表文件恢復所有包
dpkg --set-selections < ~/somefile
sudo dselect
清理舊版本的軟體緩存
sudo apt-get autoclean
清理所有軟體緩存
sudo apt-get clean
刪除系統不再使用的孤立軟體
sudo apt-get autoremove
如果使用
sudo apt-get autoremove --purge
的話會把這些孤立軟體的殘留配置文件也一並移除
查看包在伺服器上面的地址
apt-get -qq --print-uris download 軟體包名稱 | cut -d\' -f2
徹底刪除Gnome
sudo apt-get --purge remove liborbit2
徹底刪除KDE
sudo apt-get --purge remove libqt3-mt libqtcore4
一鍵安裝 LAMP 服務
sudo tasksel install lamp-server
刪除舊內核
sudo aptitude purge ~ilinux-image-.*\(\!\(`uname -r`\|generic-.*\)\)
導入ppa源的'key值
#W: GPG簽名驗證錯誤: http://ppa.launchpad.net jaunty Release: 由於沒有公鑰,下列簽名無法進行驗證: NO_PUBKEY 5126890CDCC7AFE0
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 5126890CDCC7AFE0 #5126890CDCC7AFE0替換為你需要導入的Key值
增加 add-apt-repository 命令
sudo apt-get install software-properties-common
增加一個ppa源
sudo add-apt-repository ppa:user/ppa-name
#使用 ppa 的地址替換 ppa:user/ppa-name
添加163鏡像源
sudo add-apt-repository "deb http://mirrors.163.com/ubuntu/ `lsb_release -cs` main restricted universe multiverse"
sudo add-apt-repository "deb http://mirrors.163.com/ubuntu/ `lsb_release -cs`-updates main restricted universe multiverse"
sudo add-apt-repository "deb http://mirrors.163.com/ubuntu/ `lsb_release -cs`-security main restricted universe multiverse"
系統升級
1 這里指的是版本間的升級,例如 9.04=>10.04。
2 使用該升級方式通常需要使用 backports 源。
sudo apt-get update
sudo apt-get install update-manager-core
sudo do-release-upgrade
系統
查看內核
uname -a
查看系統是32位還是64位
#查看long的位數,返回32或64
getconf LONG_BIT
#查看文件信息,包含32-bit就是32位,包含64-bit就是64位
file /sbin/init
或者使用
uname -m
查看Ubuntu版本
lsb_release -a
或 cat /etc/lsb-release
查看內核載入的模塊
lsmod
查看PCI設備
lspci
查看USB設備
lsusb
#加參數 -v 可以顯示USB設備的描述表(descriptors)
lsusb -v
查看網卡狀態
sudo apt-get install ethtool
sudo ethtool eth0
激活網卡的 Wake-on-LAN
sudo apt-get install wakeonlan
或 sudo ethtool -s eth0 wol g
查看CPU信息
cat /proc/cpuinfo
顯示當前硬體信息
sudo lshw
查看內存型號
sudo dmidecode -t memory
獲取CPU序列號或者主板序列號
#CPU ID
sudo dmidecode -t 4 | grep ID
#Serial Number
sudo dmidecode | grep Serial
#CPU
sudo dmidecode -t 4
#BIOS
sudo dmidecode -t 0
#主板:
sudo dmidecode -t 2
#OEM:
sudo dmidecode -t 11
顯示當前內存大小
free -m |grep "Mem" | awk '{print $2}'
查看硬碟溫度
sudo apt-get install hddtemp
sudo hddtemp /dev/sda
顯示系統運行時間
uptime
查看系統限制
ulimit -a
查看內核限制
ipcs -l
查看當前屏幕解析度
xrandr
硬碟
查看塊設備
lsblk
查看硬碟的分區
sudo fdisk -l
硬碟分區
#危險!小心操作。
sudo fdisk /dev/sda
硬碟格式化
#危險!將第一個分區格式化為 ext3 分區, mkfs.reiserfs mkfs.xfs mkfs.vfat
sudo mkfs.ext3 /dev/sda1
硬碟檢查
#危險!檢查第一個分區,請不要檢查已經掛載的分區,否則容易丟失和損壞數據
sudo fsck /dev/sda1
硬碟壞道檢測
sudo badblocks -s -v -c 32 /dev/sdb
#得到壞的塊後,使用分區工具隔離壞道。
分區掛載
sudo mount -t 文件系統類型 設備路經 訪問路經
#常用文件類型如下: iso9660 光碟機文件系統, vfat fat/fat32分區, ntfs ntfs分區, smbfs windows網路共享目錄, reiserfs、ext3、xfs Linux分區
#如果中文名無法顯示嘗試在最後增加 -o nls=utf8 或 -o iocharset=utf8
#如果需要掛載後,普通用戶也可以使用,在 -o 的參數後面增加 ,umask=022 如:-o nls=utf8,umask=022
分區卸載
sudo umount 目錄名或設備名
只讀掛載ntfs分區
sudo mount -t ntfs -o nls=utf8,umask=0 /dev/sdb1 /mnt/c
可寫掛載ntfs分區
sudo mount -t ntfs-3g -o locale=zh_CN.utf8,umask=0 /dev/sdb1 /mnt/c
掛載fat32分區
sudo mount -t vfat -o iocharset=utf8,umask=0 /dev/sda1 /mnt/c
掛載共享文件
sudo mount -t smbfs -o username=xxx,password=xxx,iocharset=utf8 //192.168.1.1/share /mnt/share
掛載ISO文件
sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso
查看IDE硬碟信息
sudo hdparm -i /dev/sda
查看軟raid陣列信息
cat /proc/mdstat
參看硬raid陣列信息
dmesg |grep -i raid
cat /proc/scsi/scsi
查看SATA硬碟信息
sudo hdparm -I /dev/sda
或
sudo apt-get install blktool
sudo blktool /dev/sda id
查看硬碟剩餘空間
df
df --help 顯示幫助
查看目錄佔用空間
-hs 目錄名
閃盤沒法卸載
sync
fuser -km /media/閃盤卷標
使用文件來增加交換空間
#創建一個512M的交換文件 /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=512
sudo mkswap /swapfile
sudo swapon /swapfile
#sudo vim /etc/fstab #加到fstab文件中讓系統引導時自動啟動
/swapfile swap swap defaults 0 0
查看硬碟當前讀寫情況
# 首先安裝 sysstat 包
sudo apt-get install sysstat
#每2秒刷新一次
sudo iostat -x 2
測試硬碟的實際寫入速度
dd if=/dev/zero of=test bs=64k count=512 oflag=dsync
進程
查看當前的內存使用情況
free
連續監視內存使用情況
watch -d free
# 使用 Ctrl + c 退出
動態顯示進程執行情況
top
top指令運行時輸入H或?打開幫助窗口,輸入Q退出指令。
查看當前有哪些進程
ps -AFL
查看進程的啟動時間
ps -A -opid,stime,etime,args
查看目前登入用戶運行的程序
w
查看當前用戶程序實際內存佔用,並排序
ps -u $USER -o pid,rss,cmd --sort -rss
統計程序的內存耗用
ps -eo fname,rss|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'|sort -k2 -nr
按內存從大到小排列進程
ps -eo "%C : %p : %z : %a"|sort -k5 -nr
列出前十個最耗內存的進程
ps aux | sort -nk +4 | tail
按cpu利用率從大到小排列進程
ps -eo "%C : %p : %z : %a"|sort -nr
ps aux --sort -pcpu |head -n 20
查看當前進程樹
pstree
中止一個進程
kill 進程號(就是ps -A中的第一列的數字)
或者 killall 進程名
強制中止一個進程(在上面進程中止不成功的時候使用)
kill -9 進程號
或者 killall -9 進程名
圖形方式中止一個程序
xkill 出現骷髏標志的滑鼠,點擊需要中止的程序即可
查看進程打開的文件
lsof -p 進程的pid
顯示開啟文件abc.txt的進程
lsof abc.txt
顯示22埠現在運行什麼程序
lsof -i :22
顯示nsd進程現在打開的文件
lsof -c nsd
在後台運行程序,退出登錄後,並不結束程序
nohup 程序 &
#查看中間運行情況tail nohup
在後台運行互動式程序,退出登錄後,並不結束程序
sudo apt-get install screen
screen vim a.txt
#直接退出後使用
screen -ls # 2208pxs-0.ubuntu (Detached)
screen -r 1656 #恢復
#熱鍵,同時按下Ctrl和a鍵結束後,再按下功能鍵
C-a ? #顯示所有鍵綁定信息
C-a w #顯示所有窗口列表
C-a C-a #切換到之前顯示的窗口
C-a c #創建一個新的運行shell的窗口並切換到該窗口
C-a n #切換到下一個窗口
C-a p #切換到前一個窗口(與C-a n相對)
C-a 0..9 #切換到窗口0..9
C-a a #發送 C-a到當前窗口
C-a d #暫時斷開screen會話
C-a k #殺掉當前窗口
在後台運行互動式程序,退出登錄後,並不結束程序
tmux 進入後再運行其它命令
tmux attach #恢復
#熱鍵,同時按下Ctrl和b鍵結束後,再按下功能鍵
C-b c #創建一個新的運行shell的窗口並切換到該窗口
C-b n #切換到下一個窗口
C-b p #切換到前一個窗口(與C-a n相對)
C-b 0..9 #切換到窗口0..9
C-b d #暫時斷開會話
C-b & #殺掉當前窗口
詳細顯示程序的運行信息
strace -f -F -o outfile
增加系統最大打開文件個數
#ulimit -SHn
sudo vim /etc/security/limits.conf
文件尾追加
* hard nofile 4096
* soft nofile 4096
sudo vim /etc/pam.d/su
將 pam_limits.so 這一行注釋去掉
重起系統
清除僵屍進程
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | xargs sudo kill -9
將大於120M內存的php-cgi都殺掉
ps -eo pid,fname,rss|grep php-cgi|grep -v grep|awk '{if($3>=120000) print $1}' | xargs sudo kill -9
Linux系統中如何限制用戶進程CPU佔用率
renice +10 `ps aux | awk '{ if ($3 > 0.8 && id -u $1 > 500) print $2}'`
#或直接編輯/etc/security/limits.conf文件。 ;
『貳』 linux安裝deb包命令
安裝命令
卸載命令
linux擁有賬戶許可權控制,可使用sudo進行操作
安裝deb的時候要先確認deb包是否符合自己linux系統的版本,例linux要安裝wps-office
『叄』 linux系統安裝綠聯串口驅動怎麼安裝
1、在控制台輸入lsmod,先看看能否檢測到這個設備,就看有沒有pl2303字眼可以了。如果有,則不需要再裝驅動。
2、另外如果有的話最好再用dmesg|grepusb查找如果看到:drivers/usb/serial/usb-serial.c:。就說明設備已被識別,然後往下看rivers/usb/serial/usb-serial.c:-2303,usb2-2:PL-(orusb/tts/0fordevfs)如果沒有則需要驅動程序,一般硬體廠商都會提供,如果真的沒有的話就只有到網上下載了,一般2.6內核以上的都支持。
3、安裝完畢後再輸入這個命令瞧瞧,是否安裝成功。lsmod|grepusbserial。如果有usbserial,說明系統支持USB轉串口。
4、驅動安裝完畢後,就需要安裝串口軟體,這里推薦cutecom和puttycutecom安裝sudoapt-getinstallcutecom。putty安裝sudoaptinstallputty或sudopacman-Sputty
5、然後啟動cutecom命令sudocutecom,之後你就可以看到哪些串口正在連接狀態。
6、當開發板啟動後,我們需要傳入elf或bin文件,此時需要用到tftp,在控制台輸入:sudoapt-getinstallxinetd,sudoapt-getinstalltftptftpd並等待安裝完成後,輸入:sudovi/etc/xinetd.d/tftp輸入i,進入插入模式,隨後按esc輸入wq。保存。
7、第一次啟動時和每次更換目錄時都要執行sudo/etc/init.d/xinetdrestart,不然會找不到文件。
8、喜歡用putty的可以在控制台輸入sudoputty運行程序。
『肆』 Linux操作系統下Sudo命令的使用方法
sudo命令格式如下:
sudo -K | -L | -V | -h | -k | -l | -vsudo [-HPSb] [-a auth_type] [-c
class|-] [-p prompt] [-u username|#uid] {-e file [...] | -i | -s | command}
下面我們再來看一下sudo其它常用的一些參數:
選項 含義 作用
sudo -h Help 列出使用方法,退出。
sudo -V Version 顯示版本信息,並退出。
sudo -l List 列出當前用戶可以執行的命令。只有在sudoers里的用戶才能使用該選項。
sudo -u username|#uid User 以指定用戶的身份執行命令。後面的用戶是除root以外的,可以是用戶名,也可以是#uid。
sudo -k Kill 清除「入場卷」上的時間,下次再使用sudo時要再輸入密碼。
sudo -K Sure kill 與-k類似,但是它還要撕毀「入場卷」,也就是刪除時間戳文件。
sudo -b command Background 在後台執行指定的命令。
sudo -p prompt command Prompt 可以更改詢問密碼的提示語,其中%u會代換為使用者帳號名稱,%h會顯示主機名稱。非常人性化的設計。
sudo -e file Edit 不是執行命令,而是修改文件,相當於命令sudoedit
『伍』 linux下面的sudo命令什麼意思
sudo是superuser
do的簡寫,sudo是linux系統管理指令,是允許系統管理員讓普通用戶執行一些或者全部的root命令的一個工具,如halt,reboot,su等等。這樣不僅減少了root用戶的登陸
和管理時間,同樣也提高了安全性。
apt是個很完整和先進的軟體包管理程式,使用他能夠讓您,又簡單,又准確的找到您要的的軟體包,
並且安裝或卸載都很簡潔。
他還能夠讓您的任何軟體都更新到最新狀態,而且也能夠用來對ubuntu進行升級。
"apt是需要用命令來操作的軟體,但是現在也出現了很多有圖像的軟體,比如Synaptic,
Kynaptic
和
Adept。"
『陸』 linux下面的sudo命令什麼意思
sudo 表示 「superuser do」。 它允許已驗證的用戶以其他用戶的身份來運行命令。其他用戶可以是普通用戶或者超級用戶。然而,大部分時候我們用它來以提升的許可權來運行命令。
apt 是Linux下的一款安裝包管理工具,是一個客戶/伺服器系統。sudo apt-get是用來安裝linux下的各種工具包的。
(6)linux安裝sudo擴展閱讀:
注意事項:
編輯sudo的配置文件/etc/sudoers是一般不要直接使用vi(vi /etc/sudoers)去編輯,因為sudoers配置有一定的語法,直接用vi編輯保存系統不會檢查語法,如有錯也保存了可能導致無法使用sudo工具,而使用visudo命令去配置保存時會進行語法檢查,有錯會有提示。
命令一定要使用絕對路徑,避免其他目錄的同名命令被執行,造成安全隱患 ,因此使用的時候也是使用絕對路徑!
『柒』 linux設置sudo許可權
Linux用戶配置sudo的工作過程如下:
1,當用戶執行sudo時,系統會主動尋找/etc/sudoers文件,判斷該用戶是否有執行sudo的許可權
2,確認用戶具有可執行sudo的許可權後,讓用戶輸入用戶自己的密碼確認
3,若密碼輸入成功,則開始執行sudo後續的命令
4,root執行sudo時不需要輸入密碼(eudoers文件中有配置root ALL=(ALL) ALL這樣一條規則)
5,若欲切換的身份與執行者的身份相同,也不需要輸入密碼
visudo使用vi打開/etc/sudoers文件,但是在保存退出時,visudo會檢查內部語法,避免用戶輸入錯誤信息
visudo需要root許可權
[Hadoop@localhost ~]$ visudo
visudo:/etc/sudoers:許可權不夠
visudo:/etc/sudoers:許可權不夠
使用visudo命令打開sudo配置文件
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
## 該文件允許特定用戶像root用戶一樣使用各種各樣的命令,而不需要root用戶的密碼
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
## 在文件的底部提供了很多相關命令的示例以供選擇,這些示例都可以被特定用戶或
## 用戶組所使用
##
## This file must be edited with the 'visudo' command.
## 該文件必須使用"visudo"命令編輯
## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using
## wildcards for entire domains) or IP addresses instead.
## 對於一組伺服器,你可能會更喜歡使用主機名(可能是全域名的通配符)
## 、或IP地址,這時可以配置主機別名
# Host_Alias FILESERVERS = fs1, fs2
# Host_Alias MAILSERVERS = smtp, smtp2
## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname
## rather than USERALIAS
## 這並不很常用,因為你可以通過使用組來代替一組用戶的別名
# User_Alias ADMINS = jsmith, mikem
## Command Aliases
## These are groups of related commands...
## 指定一系列相互關聯的命令(當然可以是一個)的別名,通過賦予該別名sudo許可權,
## 可以通過sudo調用所有別名包含的命令,下面是一些示例
## Networking 網路操作相關命令別名
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient
, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig
, /sbin/mii-tool
## Installation and management of software 軟體安裝管理相關命令別名
# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
## Services 服務相關命令別名
# Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig
## Updating the locate database 本地資料庫升級命令別名
# Cmnd_Alias LOCATE = /usr/bin/updatedb
## Storage 磁碟操作相關命令別名
# Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe
, /bin/mount, /bin/umount
## Delegating permissions 代理許可權相關命令別名
# Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp
## Processes 進程相關命令別名
# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
## Drivers 驅動命令別名
# Cmnd_Alias DRIVERS = /sbin/modprobe
# Defaults specification
#
# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
# You have to run "ssh -t hostname sudo <cmd>".
# 一些環境變數的相關配置,具體情況可見man soers
Defaults requiretty
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## 下面是規則配置:什麼用戶在哪台伺服器上可以執行哪些命令(sudoers文件可以在多個系統上共享)
## Syntax(語法):
##
## user MACHINE=COMMANDS 用戶 登錄的主機=(可以變換的身份) 可以執行的命令
##
## The COMMANDS section may have other options added to it.
## 命令部分可以附帶一些其它的選項
##
## Allow root to run any commands anywhere
## 允許root用戶執行任意路徑下的任意命令
root ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
## 允許sys中戶組中的用戶使用NETWORKING等所有別名中配置的命令
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE
, DRIVERS
## Allows people in group wheel to run all commands
## 允許wheel用戶組中的用戶執行所有命令
%wheel ALL=(ALL) ALL
## Same thing without a password
## 允許wheel用戶組中的用戶在不輸入該用戶的密碼的情況下使用所有命令
# %wheel ALL=(ALL) NOPASSWD: ALL
## Allows members of the users group to mount and unmount the
## cdrom as root
## 允許users用戶組中的用戶像root用戶一樣使用mount、unmount、chrom命令
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
## Allows members of the users group to shutdown this system
## 允許users用戶組中的用戶關閉localhost這台伺服器
# %users localhost=/sbin/shutdown -h now
## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
## 讀取放置在/etc/sudoers.d/文件夾中的文件(此處的#不意味著這是一個聲明)
#includedir /etc/sudoers.d
『捌』 linux sudo用法
一種約束用戶執行系統管理命令方面的安全機制,允許指定的用戶以root身份執行指定的命令而不需要提供root密碼。用過Ubuntu(Debian系)的小夥伴很有發言權。
當用戶要執行比如systemctl stop httpd時,如果該用戶不被允許使用systemctl stop命令,則命令無法運行,從而實現只允許指定用戶(信任的小夥伴)才可運行相關系統、服務管理方面的命令;如果用戶被允許使用該命令,sudo機制也會提醒用戶輸入其賬號密碼,從而存在一個緩沖的時間,可以讓命令執行者腦袋清醒一下,確認無誤後敲下回車。
Sudo應該是Switch User Do的簡寫(尚未考證),簡單粗暴的翻譯就是「切換用戶干」,當指定sudo systemctl stop httpd命令時,事實上是以root用戶的身份運行的。下面以Redha系CentOS7.6來介紹一下sudo的使用,通過visudo直接回車可看到:
圖中可以看出默認有8個命令別名,每一個別名分別對應一些命令,比如PROCESS,是nice、kill、killall三個命令的別名。之所以要有別名,是因為將命令分門別類後便於後面的引用。
看懂語法,基本就可以搞定了。每個框框中注釋部分說的很清楚。比如「%wheel ALL=(LL) NOPASSWD:ALL」表示wheel這個群組中的用戶可以在任何主機上執行任何命令且不需要輸入密碼。
用戶名:ds
群組: testgroup
要求:只允許testgroup群組用戶執行跟networking相關的命令
步驟:
1、 [endif]命令行中輸入visudo回車—編輯/etc/sudoers文件
2、 [endif]去掉「Cmnd_Alias NETWORKING…「一行的的注釋
3、 加入下面一行
4、 測試
可以看到ds用戶執行ping是可以的,但是執行kill命令就不行了,即使使用sudo嘗試使用root身份執行也不行:
通過/var/log/secure日誌文件可以看的更詳細:
常用實例講解
1 .oracle用戶可以在任何地點以任何的身份執行所有命令,等同於root。
oracle ALL=(ALL) ALL
2. oracle2用戶可以在任何地點以root的身份執行命令useradd(無需密碼)和usermod(需要密碼).
這樣oracle2就可以免密碼useradd,有密碼(密碼為oracle2的自身密碼)使用userdel。
oracle2 ALL=(root) NOPASSWD:/usr/sbin/useradd, PASSWD:/usr/sbin/userdel
使用方式如下
[oracle2@centos74 ~]$ useradd test001 # 直接使用命令是不可以的。
-bash: /usr/sbin/useradd: Permission denied
[oracle2@centos74 ~]$ sudo useradd test001 # 必須加sudo
[oracle2@centos74 ~]$ id test001 # 查看添加的用戶信息
uid=1031(test001) gid=1032(test001) groups=1032(test001)
3. oracle3用戶只能在192.168.1.120主機遠程登錄並以root身份執行ifconfig eth0命令。
Cmnd_Alias NETCMND = /sbin/ifconfig eth0
oracle3 192.168.1.120 = (root) NOPASSWD:NETCMND
4. oracle4用戶可以執行/usr/sbin下的所有命令除了/usr/sbin/userdel
oracle4 ALL=(ALL) /usr/sbin/,!/usr/sbin/userdel
5. oracle5用戶可以cat /var/log/secure*的文件
oracle5 ALL=(ALL) /bin/cat /var/log/secure*,!/bin/cat /var/log/secure* *