當前位置:首頁 » 網頁前端 » 以非root用戶運行開機腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

以非root用戶運行開機腳本

發布時間: 2023-03-31 11:38:25

1. linux下如何讓一個普通用戶開機執行自己的一個腳本,不用root許可權

腳本里寫密碼不安全,可以編輯/etc/肢殲歲sudoers,將用root免密碼執行某命令的許可權改伍付給普通用戶,這歷睜樣用戶通過sudo就可以root許可權執行命令:
比如:sudo
-u
root
yourcommand、sudo
-u
root
su

2. 安卓的腳本,不root是否可以使用

安卓的腳本,不root是無法正常使用的。手機ROOT就是獲取最高許可權,ROOT後的手機,配合360手機衛士可以實現卸載預置軟體、管理開機啟動項、控制每個APP的流量使用、修改游戲、控制廣告插件等多種功能。只有ROOT後的手機才能擁有完整的手機操作許可權。ROOT後的手機由於擁有完整的操作許可權,平時下載和更新軟體的時候更要注意,不要下載來歷不明的軟體,謹慎點擊未知的圖片和鏈接。ROOT後的手機保修相關問題,需要咨詢相關手機的廠商客服。因為不同的手機型號,不同的固件版本,ROOT方案完全不一樣,這邊以三星為例,其他手機雷同。
安卓的腳本root的步驟:
1、ROOT環境准備、備份數據;
1、 將手機連接到電腦的後置USB介面上,打開電腦版的360安全衛士-》手機助手;
2、 點擊手機助手的備份按鈕備份。該備份沒有備份您的照片和視頻,一般這些在外置SD卡上,推薦您直接從電腦上拷貝備份好;
3、 點擊鏈接下載ROOT工具odin3:http://dl.pconline.com.cn/download/170680.html
第二步:手工刷ROOT
1、 手機完全關機,音量下鍵+home鍵+開機鍵三個按鍵同時按動,當出現waming警告界面後鬆手;
2、 按動音量上,手機進入三星downloading挖煤模式後,手機插入電腦後置USB介面上;
3、 打開360手機助手,此時電腦將自動安裝驅動;
4、 打開剛才下載好的odin3工具,當工具的左側第一格下面有藍色標識後,驅動安裝完成;
5、 點擊PDA按鈕,載入對應的ROOT包後,點擊start按鈕;
6、 當軟體出現PASS後,手工ROOT完成,手機會自動重啟的;
7、 如果手機卡在開機三星的logo界面請多等待5分鍾;
8、 注意事項:查找對應的ROOT包。
(1) 不同品牌,不同型號的,不同固件版本的ROOT包完全不一致,請一定對照好,否則會導致手機無法開機,造成硬體損傷。
(2) 在刷ROOT包時,一定要保證手機正常連接電腦,如果不小心觸碰數據線導致連接中斷,手機會無法開機,造成硬體損傷。
(3) 由於ROOT包非官方發布,都是手機愛好者個人發布,或許由於編寫程序BUG等因素會導致手機無法啟動,在操作前,一定要備份好本機的數據。
(4) 如果您在刷ROOT中,odin3顯示fail!請一定及時聯系專家,不要在做過多的操作,否則會造成手機硬體的損壞。
(5) 如果您沒有相關手機型號的ROOT經驗,建議您先咨詢下人工專家。
第三步:開啟ROOT許可權
1、 手機正常重啟後,訪問http://shouji.360.cn/鏈接,下載安裝360手機衛士;
2、 在手機上打開360手機衛士-》安全防護-》超強模式-》打開超強模式-》立即開啟;
3、 在上述步驟中,如果彈出授權提示選項,點擊授權或同意按鈕;
4、 如果超強模式成功打開,手機ROOT成功完成,您可以使用超強模式裡面的所有的功能,進行預置軟體卸載、管理開機啟動項等;
5、 手機ROOT後,不要恢復出廠設置,不能點擊系統更新功能,否則ROOT會失效。

3. Docker:非root用戶啟動操作docker

摘要: docker , linux

一般都是用root用戶啟動和操作docker,當是普通用戶運行容器啟動項目時報錯沒有許可權

docker守護進程後台啟動時,需要讀取Unix套接字 /var/run/docker.sock ,這個文件root所有,docker用戶組可操作,因此普通非docker組的用戶沒有許可權訪問

類似的Mysql客戶端也可以使用socket進行連接,文件在/var/run/mysqld/mysqld.sock

默認是777許可權,如果改成770,則非root用戶或者非mysql組用戶也將無法連接MySQL

退出升氏段root用戶,普通用戶無法報錯無法通過socket連接

本質上還是使用root運行docker,只是在啟動的時候可以以root用戶啟動docker,為了避免每次啟動需要輸入密碼,需要給普通用戶sudo許可權以及可以免密碼方式登錄。
在/etc/sudoers文件中設置免密碼

此時再使用sudo運行docker即可,在其他shell腳本中docker run前面增加sudo

如果不使用sudo則無許可權操作docker

docker安裝之後默認會創建docker組,docker組擁有讀取套接字許可權,因此將該普通用戶加入docker組,該組下所有用戶有訪問unix套接字許可權,最後刷新用戶的初始組即可。
先查看是否有docker用戶,如果沒有需要手動增加

如果/var/run/docker.sock的用戶組不是docker而是root需要使用 chgrp 修改一下

將普通用戶添加到docker組

此時查看test用戶所在的組

發現還是沒有docker組,使用 newgrp 刷新以下用戶的初始組

此時再次查看用戶的組以已經出現docker

然後直接以用戶操作docker即可

或者不使用newgrp直接重新登錄即可

gpasswd是linux下組管理工具,用戶添加用戶到組和從組中刪除用戶,必須是sudo執吵譽行

測試刪除和添加test用戶於docker組

此時退出終端重新登錄則test的docker組消失,再添加進來

添加之後在當前終端不能立刻生效,需要使用核猛newgrp將新增加的組添加到用戶組的集合中刷新,立即生效

以後退出登錄後新登錄進來用戶的用戶組都會更新生效

4. linux設置非root用戶開機啟動

linux系統:centos 7.6
非root用戶:testUser
需要啟動的腳本: /home/test/runOnStartUp.sh

操作如下:
以模晌旅root用戶登錄,打開文件進行編緝:

在末尾謹毀添旦凳加:

保存即可。

5. linux開機自啟動,如何跳過開機動畫

某個程序方便後續的管理;那麼我們如何在開機時候,運行此賬戶安裝的程序呢?例如:以linux下指定mycount用戶在linux開機時執行/home/sun/startXX.sh為例:

以root登錄linux

執行vi /etc/rc.d/rc.local

在文檔末尾添加一行語句:su – mycount -c 「/home/sun/startXX.sh」

保存rc.local即可。

這個地方一定要注意 su – 這個是環境的變數也會做相應的轉換;如果環境變數沒有改變的話,我們用su 就可以了。

二、

在Linux中以普通用戶開機自動運行腳本程序

測試環境:CentOS6.5

管理員:root

普通用戶:test1

實現目標:在Linux啟動時,以普通用戶test1自氏答動運行位於根目錄下的腳本程序test.py,該程序會在每次執行時自動向本地日誌文件追加一條記錄,源碼如下:

from datetime import datetime

now=datetime.now()

f=open(『test.log』,』a』)

f.write(『%s 『%now)

f.close()

Linux在啟動時,會自動執行/etc/rc.d目錄下的初始化程序,因此我們可以把啟動任務放到該目錄下,有兩種辦法:

方案一:

1、因為其中的rc.local是在完成所有初始化之後執山亂行,因此我們可以把啟動腳本寫到裡面

2、用root賬號登陸Linux,vi /etc/rc.d/rc.local編輯文件,在最後加入兩行需要執行的腳本程序:

cd /home/test1 –該步不可少,否則會提示沒有許可權打開』test.log』文件

su test1 -c 「python /home/test1/test.py」 –把要執行的命令作為一個參數傳遞級su

方案二:

1、init.d目錄下都為可執行程序,他們其實是服務腳本,按照一定格式編寫,Linux 在啟動時會自動執行,類似Windows下的服務

2、用root帳號登錄,vi /etc/rc.d/init.d/mystart,追加如下內容:

復制代碼

#!/bin/bash

#chkconfig:2345 80 05 –指定在哪幾個級別執行,0一般指關機,

6指的是重啟,其他為正常啟動。80為啟動的優先順序,05為關閉的優先機

#description:mystart service

RETVAL=0

start(){ –啟動服務的入口函數

echo -n 「mystart serive …」

cd /home/test1

su test1 -c 「python /home/test1/test.py」

}

stop(){ –關閉服務的入口函數

echo 「mystart service is stoped…」

}

case $1 in –使用case,可以進行互動式操作

start)

start

;;

stop)

stop

;;

esac

exit $RETVAL

復制代碼

3、運行chmod +r /etc/rc.d/init.d/mystart,使之可直接執行

4、運行chkconfig –add mystart,把該服務添加到配置當中

5、運行chkconfig –list mystart,可以查看該服務進程的狀態

總結:

兩種方案的的核心都是切換用戶到test1,然後執行命令啟動Python程序,做成服務的好處是可以定義多個交互命令,比如:start,stop,restart,reset…,在服務運行的過程中還可以做相應操作。最開始的時候,我按照一般的思路寫了如下腳本,卻怎麼也執行不了:

su test1 –切換到test1用戶

cd /home/test1 –切換到根目錄

python test.py –執行python程序

exit –退出test1帳號

看起來好象一切都沒錯,但是發現只運行了第一行的命令,後面的都沒有運行,直到退出test1用戶後才發現好象執行完畢。分析原因,是因為Linux啟動的時候是在root帳號下,執行su test1等於打開了一個新的shell腳本,因此下逗核檔面的代碼都在等著新的Shell腳本結束才能運行,就象在主程序里調用了一個子程序,而子程序是個死循環,一下出來來結果下面的要等死了。知道了發生的原因,那麼解決的辦法就相對簡單了,就是在執行上述腳本程序時,不要離開本身的Shell。我們可以把執行命令做為su的一個參數傳遞進去,因為沒有涉及到打開新的Shell,因此可以正常執行你期望的腳本程序,順利實現開機自動啟動指定的腳本程序。

執行方案中重要的一個命令是:

[root@localhost ~]# whoami

root

[root@localhost ~]# su – keysystem -c 「whoami」

keysystem

[root@localhost ~]#

以keysystem用戶執行whoami的命令:

[root@localhost ~]# su – keysystem -c 「whoami」

文章知識點與官方知識檔案匹配
CS入門技能樹Linux入門初識Linux
23840 人正在系統學習中
打開CSDN,閱讀體驗更佳

Linux中沒有rc.local文件的完美解決方法
主要介紹了Linux中沒有rc.local文件的解決方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
最新發布 linux 開機自啟用非root啟動
就會用djq用戶執行mkdir -p /home/djq/222命令。linux 開機自啟用非root啟動。
繼續訪問
linux開機自動執行命令或自動啟動程序(rc.local)
linux開機的最後會執行/etc/rc.local,因此可以在此腳本裡面添加shell命令自動執行或者自動啟動某個進程。 比如 自動輸出信息: #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In
繼續訪問

跳過網路啟動 linux,Linux啟動時如何跳過fsck
在Linux里,如果一個文件系統被mount過一定次數後,或者距離上次fsck超過一定天數,當系統重起時就會自動fsck。根據文件系統的大小,fsck可能需要幾分鍾甚至幾個小時。隔一段時間作一次fsck是很有必要的,但是如果你不想花費時間fsck,你也可以用如下幾種方法跳過fsck:1. 修改/etc/fstab在/etc/fstab里, 最後一列是系統啟動時fsck的順序。 文件系統 / 應該設...
繼續訪問
linux 查看root 進程,Linux查看非root運行的進程
Linux查看非root運行的進程youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ps -U root -u root -NPID TTY TIME CMD663 ? 00:00:00 dbus-daemon713 ? 00:00:00 rsyslogd730 ? 00:00:00 avahi-da...
繼續訪問
linux上使用非root賬戶啟動運行java程序
事情是這樣的、、、、、、、 公司的app後台程序是java的,在linux上運行時要求必須使用非root賬戶,例如使用app用戶啟動java程序。這次運維有事請假了,所以這個小任務就交給我了,多大的事情啊,這還不是分分鍾搞定的啊。 好了一步步的開始。 第一步:創建mobile賬戶和組 groupadd app useradd -d /usr/app -g app app 第二步:搭建...
繼續訪問
linux用其他賬號停進程,Linux系統上對其他用戶隱藏進程的簡單方法
我使用的是多用戶系統,大部分的用戶通過ssh客戶端訪問他們的資源。我如何(怎麼樣)避免泄露進程信息給他們?如何(怎麼樣)在Debian/Ubuntu/RHEL/CentOS linux伺服器器上阻止/避免他們看到不屬於他們的進程?對linux上的其他用戶隱藏進程的方法解決方法/方案:如果你使用的linux kernel(內核)是3.2以上的版本(或者使用的RHEL/CentOS是6.5以上的版本)...
繼續訪問
轉:linux開機自動運行
實現目標:在Linux啟動時,自動運行位於普通用戶test1根目錄下的腳本程序test.py,該程序會在每次執行時自動向本地日誌文件追加一條記錄,源碼如下: from datetime import datetime now=datetime.now() f=open('test.log','a') f.write('%s '%now...
繼續訪問
跳過開機向導
跳過開機向導
繼續訪問
linux系統rc.local錯誤,Linux開機啟動文件rc.local無法執行的解決方法
眾所周知,rc.local是Linux系統中的一個重要的開機啟動文件,每次開機都要執行這個文件。但最近很多用戶表示系統無法執行這個問題件,從而導致了一系列的問題出現,這是怎麼回事呢?如何解決這個問題呢?下面,跟隨小編一起來看看Linux開機啟動文件rc.local無法執行的解決方法。Linux系統在Linux系統中,有一個重要的開機自動啟動腳本文件:/etc/rc.local---》/etc/rc...
繼續訪問
rc.local出錯影響ubuntu正常啟動,跳過執行rc.local
通過進入單用戶模式,跳過rc.local
繼續訪問
Linux開機啟動,設置rc.local失效解決方案
在/etc/rc.local文件夾下,添加要執行的命令,如/sbin/ifconfig docker0 mtu 1454 注意這里要使用絕對路徑/sbin/ifconfig 如果開機發現執行失敗,則需要在上一行添加sleep 10 由於ifconfig服務不一定在rc.local之前啟動,所以讓系統等待十秒hours在執行sleep 10 /sbin/ifconfig docker0 mtu 14
繼續訪問
Linux系統跳過密碼登錄
一、引導系統 RHEL7的標准引導系統是GRUB2,RHEL6默認使用GRUB1,這里主要講GRUB2。 在Linux系統開機選擇內核時,按下e進入內核引導參數的編輯菜單,找到以linux16開頭的一行,在行末添加更多的命令。例如,在行末尾添加system.unit=emergency.target,然後按Ctrl+X,則系統將會以緊急目標模式啟動。 如果在系統引導到GUI環境中出現問題,可以在內核命令行末尾加入system.unit=multi-user.target,若引導成功,則會登錄到命令行模
繼續訪問
rc.local使用非root用戶
su -aaa-c "/data/tomcat/bin/startup.sh"
繼續訪問
Linux設置非root用戶啟動程序
Linux設置非root用戶啟動程序
繼續訪問
開機自啟動非root用戶的服務
設置非root用戶的服務開機自啟動 比如:chkconfig mysql on 是無效的 可以這樣設置: 在root用戶下 vi /etc/rc.local 或者 vi /etc/rc.d/rc.local 在最後一行加上 su - mysqladmin -c "/usr/local/mysql/startMysql.sh" 其中mysqladmin是管理mysql的用戶, "/usr/loc...
繼續訪問
linux非root用戶打開80,Linux非root用戶如何使用80埠啟動程序
默認情況下Linux的1024以下埠是只有root用戶才有許可權佔用,我們的tomcat,apache,nginx等等程序如果想要用普通用戶來佔用80埠的話就會拋出java.net.BindException: Permission denied:80的異常。bind時perror提示錯誤信息:permission denied解決辦法有兩種:1.使用非80埠啟動程序,然後再用iptables...
繼續訪問
Linux在任意目錄下執行指定的腳本
前言 我有個腳本,我只能在腳本所在的文件夾下面運行,這樣的話很不方便,如果我去了別的目錄下面的話,我就無法運行這個腳本了… 解決 在profile中設置PATH, 假如我想給 xcall 腳本設置能讓在任意的目錄下去運行, 此時xcall在/root/soft/script 目錄下. 編輯環境變數 [root@zjj101 etc]# cd /etc [root@zjj101 etc]# vim profile # 上面省略........ export HIVE_HOME=/root/soft/hive
繼續訪問
Linux系統啟動過程分析
經過對Linux系統有了一定了解和熟悉後,想對其更深層次的東西做進一步探究。這當中就包括系統的啟動流程、文件系統的組成結構、基於動態庫和靜態庫的程序在執行時的異同、協議棧的架構和原理、驅動程序的機制等等。 本人在綜合了現有網上大家智慧的基礎上,結合對2.6.32的內核代碼的研讀,基於CentOS 6.0系統對Linux的啟動流程做了些分析。由於才疏學淺,知...
繼續訪問
linux跳過開機啟動項