發佈日期:

給予使用者帳號sudo權限

創建使用者帳號

  • 使用有root權限的使用者登入系統
  • 使用useradd來創建一個普通的使用者帳號
    # useradd USERNAME
  • 設定這個使用者的密碼
    # passwd USERNAME
    Changing password for user USERNAME.
    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
  • 使用visudo去編輯/etc/sudoers檔案
    # visudo
  • 尋找下面這行代表擁有sudo權限的群組的設定,並移除前面的#字號
    ## Allows people in group wheel to run all commands
    # %wheel ALL=(ALL) ALL
  • 新增剛剛創建的使用者進入剛剛的群組裡
    # usermod -aG wheel USERNAME

測試是否有成功給予權限

  • 轉換身份至剛剛創建的帳號
    # su USERNAME -
  • 查看所在群組
    $ groups
    USERNAME wheel
  • 測試sudo指令
    $ sudo whoami
    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

    [sudo] password for USERNAME:
    root

參考資料

發佈日期:

Hard Link與Symbolic Link的比較

硬連結 (Hard Link)

其特性如下:

  • 以相同的i-node指向相同的檔案。
  • 主要用於備份。
  • 只能在同一個磁區 (Partition)中建立。
  • 只能連結檔案,不能連結目錄。
  • 指令為ln (原始檔案) (目地檔案)

如果我們對某個檔案做了硬連結,那麼若刪掉了其中一個,另一個仍然會可以讀去,但是,hard link 是有限制的:

  • 不能跨 Filesystem
  • 不能 link 目錄。

使用範例

軟連結 (Symbolic Link)

其特性如下:

  • 以絕對路徑或相對路徑指向原始的檔案。
  • 主要用於簡化路徑。
  • 類似MS-Windows下的「建立捷徑」的功能。
  • ln -fsv (原始檔案) (目地檔案)

這個的概念就很像windows裡面的捷徑概念,當來源檔被刪除之後,symbolic link 的檔案會開不了。
但是他可以跨FileSystem也可以link目錄,在使用上相對會較為方便。

使用範例

發佈日期:

使用 systemctl 操作系統層級

列出所有的系統層級

# systemctl list-units --type target

顯示目前系統預設運作層級

# systemctl get-default

切換運作層級至文字模式(runlevel 3)
# systemctl isolate multi-user.target

顯示某個服務的系統層級

若要查看某個服務現在執行的系統層級,可使用下列指令
systemctl show -p WantedBy service-name

服務的runlevel有下面這些:

對照chkconfig的runlevel如下:

發佈日期:

linux管理Service的指令

systemctl命令

systemctl命令是系統服務管理的指令,它將servicechkconfig這兩個命令組合到一起。

systemctl語法使用介紹

[root@study ~]# systemctl [command] [unit]

command 主要有:
start :立刻啟動後面接的 unit
stop :立刻關閉後面接的 unit
restart :立刻關閉後啟動後面接的 unit,亦即執行 stop 再 start 的意思
reload :不關閉後面接的 unit 的情況下,重新載入設定檔,讓設定生效
enable :設定下次開機時,後面接的 unit 會被啟動
disable :設定下次開機時,後面接的 unit 不會被啟動
status :目前後面接的這個 unit 的狀態,會列出有沒有正在執行、開機預設執行否、登錄等資訊等!
is-active :目前有沒有正在運作中
is-enabled:開機時有沒有預設要啟用這個 unit

使用範例

  • 開啟atd服務
    [root@study ~]# systemctl start atd.service
  • 關閉atd服務
    [root@study ~]# systemctl start atd.service
  • 查看現在狀態
    [root@study ~]# systemctl status atd.service
  • 開機時自動開啟
    [root@study ~]# systemctl enable atd.service
  • 開機時不要自動開啟
    [root@study ~]# systemctl disable atd.service
  • 查看所有已啟動的服務
    [root@study ~]# systemctl list-units --type=service
  • 重啟某服務
    [root@study ~]# systemctl restart atd.service