web-dev-qa-db-ja.com

ルートとして実行されているかどうかを確認するにはどうすればよいですか? sudoを要求しない

私は新しいUbuntuユーザーであり、OSにまだ慣れています。私は主に、開発中のサイトのローカルテストに使用しています。このためにLAMPスタックをダウンロードしました。

Ubuntuを初めてダウンロードしたとき、開発中のファイルを編集するたびに、Sudo nano filenameと入力する必要がありました。私がテストしていたファイルについてのみ、ホームディレクトリ内のファイルについてはこのようではありませんでした。

今日ログオンしたときに、Sudoと入力する必要はなく、nano filenameと入力してファイルを編集するだけでした。どうにかしてSudoパスワードの必要性を無効にしたかどうかはわかりません。

grep root /etc/passwdを実行し、grep root /etc/shadowを実行しましたが、Sudoを入力せずにアクセスを拒否しました。すると、root:!が表示されました。私が読んだことから、それはアカウントが無効になっていることを意味します。

パスワードが無効になっているのか、アカウントがロックされていて何も問題がないのかどうかはわかりません。

Rootとして実行していないことを確認する方法はありますか?現在それを無効にする方法がある場合、管理者としてのみ実行しています。

また、ファイルを編集するためにSudoパスワードを入力する必要が突然なくなったのはなぜですか?

あなたの答えをありがとう、私の質問が不明瞭な場合、私が明確にしようとすることができるように私に知らせてください。

6
Chris

Bash(デフォルト)を使用している場合、プロンプトは、rootとして機能しているかどうかを示します。 「$」で終わる場合は、通常のユーザーとして実行しています。 「#」で終わる場合は、ルートとして実行しています。

さらに、

whoami

あなたが誰であるかが表示されます。

Sudoアクセスが必要だったファイルを突然編集できる場合、最初の疑いは、ファイルのアクセス許可をなんとかして変更できたことです。入力した場合:

ls -l <filename>

結果を調べると、rwxセクションに権限が表示されます。

-rw-rw-r--  1 user user     77338 Oct 21 17:59 filename.odt
|\ /\ /\ /
| |  |  +-- permissions for "other": every user on the system.
| |  +----- permissions for "group"
| +-------- permissions for "owner"
+---------- filetype (- is regular file)

書き込み許可を持つグループに属している場合、または「その他」に書き込み許可がある場合、ファイルへの書き込みにSudoアクセスは必要ありません。

ファイル許可の詳細については、 Linux許可の概要 を参照してください。

10
goofdad

Rootまたは他のユーザーが所有するファイルを編集するには、rootのみを使用する必要があります。 作成または所有するファイルは、rootを使用せずに編集できます。

例えば。次のコマンドを実行します

cd $HOME
touch test.txt
nano test.txt

上記のコマンドは、ホームディレクトリ(個人用領域)に移動し、test.txtというファイルを作成してから、nanoというエディターを使用してファイルを入力しました。

今すぐ試してみると:

nano /etc/apt/sources.list

ファイルは表示できるはずですが、ファイルを編集できないという警告が表示されます。

enter image description here これは、ファイルの所有者が自分ではない場合でも、すべてのユーザーに読み取りアクセス権があるためです。これは次の図に示すことができます。

enter image description here

Ubuntuでアクセス許可を簡単に表示するには、次のように入力します。

ll /path/to/parent/directory

または、debianなどの他のシステムの場合

ls -al /path/to/directory

ユーザーのアクセス許可について読むための素晴らしいオンラインチュートリアルがたくさんあります thisなど 。 Linuxの権限を理解していないため、サーバーの安全性が低いため、/ var/wwwのすべてを777に設定してWebサーバーを「動作」させるなど、愚かなことをしている人をよく見かけます。

私は新しいubuntuユーザーです...

頑張ってLinuxにようこそ!言葉を広める。

4
Programster

「あなたが誰であるか」を詳細に表示するには、コマンドidを使用します

$ id
uid=1000(alphawolf) gid=1000(alphawolf) groups=1000(alphawolf),4(adm),24(cdrom),25(floppy),27(Sudo),29(audio),30(dip),44(video),46(plugdev),107(netdev),113(lpadmin),128(sambashare),132(wireshark),2000(humans-bc-aw)

ご覧のとおり、アカウントによっては出力がかなり長くなる場合があります。

  • ユーザー名とID "uid=1000(alphawolf)"を表示するだけでなく、
  • プライマリグループの名前とID「gid=1000(alphawolf)
  • アカウントがメンバーになっている他のすべてのグループの名前とID。デフォルトでは、このリストには、通常/制限ユーザーの場合はプライマリグループのみが含まれ、管理ユーザーの場合は少なくともadmSudoを含む長いリストが含まれます。

    groups=1000(alphawolf),4(adm),24(cdrom),25(floppy),27(Sudo),29(audio),30(dip),44(video),46(plugdev),107(netdev),113(lpadmin),128(sambashare),132(wireshark),2000(humans-bc-aw)
    

今、この情報を持つファイルのアクセス権をどのように判断できますか?

例のように、ls -l /path/to/file-or-directoryの出力を取得します。

$ ls -l /usr/bin/dumpcap
-rwxr-xr-- 1 root wireshark 85632 Aug 16 01:43 /usr/bin/dumpcap*

このファイルは、昇格した特権でネットワークパッケージをキャプチャするためにWiresharkが使用する実行可能ファイルです。所有者とグループのアクセス許可が異なるため、私はそれを選択しました。
重要な詳細を見てみましょう。

  • 所有者:root
    これはファイルを所有しているユーザーです。

  • グループ:wiresharkこれは、このファイルが割り当てられるユーザーグループです。

  • パーミッション文字列:-rwxr-xr--これらは、usergroupのファイルパーミッションです以下に説明するメンバーおよびその他すべて:

    - rwx r-x r--
    | \ / \ / \ /
    |  V   V   V
    |  |   |    \__ Other permissions: [r] 'r'ead access granted
    |  |   |                           [-] 'w'rite access denied
    |  |   |                           [-] e'x'ecuting denied
    |  |    \__ Group permissions: [r] 'r'ead access granted
    |  |                           [-] 'w'rite access denied
    |  |                           [x] e'x'ecuting granted
    |  \__ Owner permissions: [r] 'r'ead access granted
    |                         [w] 'w'rite access granted
    |                         [x] e'x'ecuting granted
    \__ File type: [-] normal file 
                       (alternatives: 'd'irectory, sym'l'ink,
                       'c'haracter device, 'b'lock device, ...)
    

さて、上記のalphawolf出力を持つユーザーidは、このファイルで何ができますか?

  • 私は、完全なrootead、rrite、およびewecute権限を持っているユーザーxではないではありません
  • しかし、私はwiresharkグループのメンバーであるため、ファイルのグループに設定された権限を持っています:ファイルをreadし、executeすることはできますが、変更することはできません(writeアクセスなし)。
  • 他の人はファイルをreadすることしかできませんでしたが、それをwriteすることもexecuteすることもできませんでした。

これは、異なるシステムファイルに対する権限を判断するのに役立ちます。

3
Byte Commander

ほとんどのシェルではこれが可能です

if [ $USER = root ] ; then echo Im root; fi

Bashはこれもサポートしています

if [ $UID = 0 ] ; then echo Im root; fi
1
Kjeld Flarup