Linux權限管理點滴

在Jenkins任務的Post Steps中,使用「Send files or execute commands over SSH」,經過執行腳本的方式,中止docker container,刪除其image,並從新從Docker Hub中下載鏡像啓動。執行腳本的過程當中遇到了sudo相關的權限問題,在此作個記錄。docker

其中virual1是一臺Ubuntu系統,使用登陸用戶xym鏈接。/usr/local/erp/jenkins.sh的內容以下:bash

#!/bin/sh

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
echo "stop docker started process"
docker rmi $(docker images | grep 'haha' | awk '{print $3}')
docker run -d -p 8084:8081 mozaiquan/zkong:haha

因爲virual機器上安裝的docker版本較低(Docker version 1.6.2, build 7c8fca2)docker指令比較原始,其中:ui

  • "docker stop" = "docker container stop"
  • "docker rm" = "docker container rm"
  • "docker rmi" = "docker image rm"
  • "docker images" = "docker image ls"

爲了使xym能夠不用sudo執行docker,須要對權限作一些配置。.net

Linux的用戶能夠分爲管理員用戶(root uid:0), 系統用戶(uid:1~999),登陸用戶(uid:1000+)參考code

查看全部用戶:blog

cat /etc/passwd

查看全部組:get

cat /etc/group

將xym添加到docker,root組中(可能不是必要條件):jenkins

usermod -a -G docker xym
usermod -a -G root xym

將xym設置爲免密操做(關鍵操做):io

編輯/etc/sudoers, 添加class

xym     ALL=(ALL) NOPASSWD:ALL

這樣就能以xym的登陸用戶身份直接操做docker指令,而不須要輸入密碼!

 

關於sudo: sudo命令用來以其餘身份執行命令,預設爲root,使用sudo必須先輸入密碼,有五分鐘有效期,超期必須重輸。

相關文章
相關標籤/搜索