sudo vs su (sebagai pengguna non-root)

10

Komputer saya memiliki user1 dan user2, keduanya adalah administrator.

Saat saya masuk sebagai pengguna1 saya mencoba untuk:

  • "su - user2" -> meminta saya untuk kata sandi users2, lalu saya bisa mengetik perintah
  • "sudo --user = user2 [command]" -> meminta saya untuk kata sandi. Jika saya mengetik kata sandi pengguna2 saya mendapat "Maaf, coba lagi." pesan kesalahan seolah-olah kata sandi salah. Jika saya mengetik kata sandi user1, kata itu berjalan dengan benar.

Bukankah seharusnya perintah sudo memerlukan kata sandi pengguna yang saya definisikan di parameter "--user"?

Pablo
sumber
2
Sudo (pengguna super lakukan) meminta kata sandi dari pengguna yang memanggil perintah sudo. Su (pengguna beralih) meminta kata sandi pengguna yang dialihkan.
Tuan Kennedy
Lihat juga: apple.stackexchange.com/q/49873/216401
Mr. Kennedy

Jawaban:

21

Ini adalah perilaku yang diharapkan.

  • Tujuan dari su adalah untuk mengalihkan pengguna. Ini disebut alat identitas pengguna pengganti. su mengambil kata sandi pengguna lain karena Anda beralih ke pengguna itu.

    Utilitas su meminta kredensial pengguna yang sesuai melalui PAM dan beralih ke ID pengguna tersebut (pengguna default adalah superuser). Shell kemudian dieksekusi.

    Sumber: Halaman manual

  • Tujuan sudo adalah untuk mengeksekusi perintah sebagai pengguna lain. The -uatau --userpilihan untuk menspesifikasikan sudo pengguna. Anda tidak masuk sebagai pengguna itu, hanya menjalankan perintah. sudo mengambil kata sandi Anda untuk memverifikasi identitas Anda untuk melakukan tugas seperti itu.

GRG
sumber
Jadi jika user1 tidak ada dalam file sudoers saya tidak akan bisa sudo, hanya "su"?
Pablo
1
@Pablo Itu benar
grg
@Pablo "beralih pengguna" versus "pengguna super lakukan". Satu mengharuskan Anda untuk mengotentikasi sebagai pengguna lain; yang lain mengharuskan Anda untuk mengautentikasi sebagai superuser.
Boris the Spider