
私は走っています
Linux 4.4.0-116-generic Ubuntu + KDE ( x86_64 GNU/Linux )
ksession
特定のセッションを終了するためにエイリアスを実行したいと思います。同時に、私は他の人ではなく、私だけがこのエイリアスを実行できるようにしたいです。そのため、ディレクトリ.bashrc
内のファイルを見つけて名前/root
でエイリアスを追加し、コマンドをksession
実行してみましたが、うまくsource
いかず、次のエラーが発生しました。
amit@C0deDaedalus:~$ source /root/.bashrc
bash: /root/.bashrc: Permission denied
amit@C0deDaedalus:~$ sudo source /root/.bashrc
sudo: source: command not found
source
このファイルをルートではなくファイルにする方法はありますか?root以外のユーザーとしてエイリアスを実行したいです。このようにsudoで実行できますか?
$ sudo ksession
試しましたが、次のエラーで失敗しました。
amit@c0deDaedalus:~$ sudo ksession sudo: ksession: command not found
そうでない場合、root以外のユーザーからrootエイリアスを実行する回避策はありますか?
答え1
ルートにはエイリアスは必要ありません。個人的なものが必要な場合は、他のユーザーアカウント(この場合はrootアカウント)の内容を変更しないでください。
ksession
シェルスクリプトで作成し、sudo
必要に応じてスクリプトで使用してください。たとえば、スクリプトをプライベートディレクトリに配置し、ディレクトリがディレクトリ$HOME/bin
の一部であること、およびスクリプトが$PATH
実行可能であることを確認します。
または、それをシェル関数で作成してファイルに入れます~/.bashrc
。この機能はsudo
必要に応じて使用できます。
または、別名で作成して~/.bashrc
ファイルに入れます。sudo
必要に応じてエイリアスを使用できます。
あなたのコマンドは組み込みコマンドであり、外部コマンドが必要なためsudo source ...
機能しません。source
bash
sudo
動作しても、sudo
呼び出しコマンドは独自のサブシェルで実行されているため、呼び出しシェルでエイリアスは有効になりません。
答え2
/etc/profile.d/にスクリプトを生成して、すべてのユーザーのエイリアスを生成できます。
/etc/profile.dに00-aliases.sh(または他のクールな名前)というファイルを作成します。
nano /etc/profile.d/00-aliases.shはこのファイルにエイリアスを置きます。例:
alias foo='bar --baz' alias baz='foo --bar' ファイルの保存
変更を適用するには、開いているすべての端末を再起動してください。楽しむ