cat /etc/passwd |grep postgre
postgres:x:115:127:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
apt-cache show postgresql
Package: postgresql
Priority: optional
Section: database
Installed-Size: 65
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian PostgreSQL Maintainers <pkg-postgresql-public@lists.alioth.debian.org>
Architecture: all
Source: postgresql-common (136)
Version: 9.1+136
Depends: postgresql-9.1
Filename: pool/main/p/postgresql-common/postgresql_9.1+136_all.deb
Size: 5468
MD5sum: 34f5a1373ad5cd0b6f5aa3e7af06c9e7
SHA1: 6f271758bd51c23614b12fd63fb711ecfa43e9e5
SHA256: e8921a22b560e81f57a2a00001e31ba1036f67a8e7f151bf8f977b4919fc559a
Czy mogę wymienić to /bin/bash
z /bin/false
?
bash
security
postgresql
passwd-file
Smile.Hunter
źródło
źródło
Odpowiedzi:
Istnieje powłoka, ponieważ używamy PostgreSQL z wiersza poleceń jako użytkownik PostgreSQL.
źródło
/bin/bash
aby mój PostgreSQL działał poprawnie. W każdym razie dziękuję!Ze względów bezpieczeństwa Postgres działa na specjalnym koncie użytkownika systemu operacyjnego. To konto jest tworzone na komputerze podczas działania instalatora i, o ile nie zostanie zastąpione w wierszu poleceń, będzie nazywane „postgres”.
W systemach operacyjnych uniksopodobnych, takich jak Linux i Mac OS X, konto jest konfigurowane bez hasła i użytkownicy zwykle nie muszą się już o to martwić. Źródło .
Również nie jest dobrą praktyką ręczna edycja pliku passwd. Powinieneś użyć polecenia:
źródło
Jeśli administrator serwera używa
sudo
i nie jest ostrożny co do tego, jakie to środowisko, i umaskuje to, praca nad bazą danych może zakończyć się tworzeniem plików w niezamierzonych lokalizacjach lub z niezamierzonymi uprawnieniami.Przypisanie powłoki użytkownikowi umożliwia administratorom zalogowanie się jako postgres i pracę nad powłoką tego użytkownika. Ustalenie,
sudo
że źródłem są niespecyficzne komunikaty o błędach serwera, byłoby zbyt wielkim problemem.Jeśli nie potrzebujesz tego i masz pewność, że nigdy nie wywołasz plików binarnych postgres w tak podatny na błędy sposób, możesz bezpiecznie usunąć powłokę:
Pamiętaj, że jeśli będziesz mógł zostać rootem, nadal możesz stać się każdym, w tym użytkownikami bez ważnych powłok:
Autorytatywne źródło:
źródło