Cách thực hiện một hồ sơ người dùng dễ bay hơi


3

Tôi muốn thiết lập một máy Linux sao cho khi một người dùng cụ thể, được đặt tên sinh viên , đăng xuất, thư mục / home của họ bị xóa sạch và đặt lại.

Về cơ bản tôi muốn thực hiện các hành động này khi người dùng đăng xuất:

userdel student
rm -r /home/student
useradd -m student
echo student | passwd --stdin student

Có cách nào đơn giản hơn là xóa và tạo lại người dùng?

Chú thích: Mục tiêu ở đây là xóa sạch nội dung của thư mục chính của người dùng và sao lưu thư mục chính của người dùng từ / etc / skel. Tôi đoán tôi chỉ đang cố gắng khắc phục các vấn đề về quyền sở hữu tệp phát sinh khi sao chép / etc / skel over / home / student.

Chỉnh sửa: Những gì tôi cần làm là bắt chước theo cách đó useradd -m sao chép nội dung từ /etc/skel đến /home/student và thay đổi chủ sở hữu, nhóm và quyền. Làm thế nào tôi có thể làm những gì useradd -m mà không phải xóa và sau đó tạo lại người dùng?


Bài đã khóa. Vui lòng không khôi phục các thay đổi được thực hiện bởi người kiểm duyệt đối với bài đăng.
BinaryMisfit

Câu trả lời:


5

Có thể tôi đang thiếu một cái gì đó, nhưng tại sao lại xóa và tạo lại người dùng, nếu tất cả những gì bạn muốn là xóa thư mục chính?

Bạn không thể làm một

rsync -a --delete /etc/skel/ /home/student/

Mỗi khi người dùng đăng xuất?

Cũng có thể giết tất cả các tiến trình của người dùng nếu còn lại, nhưng đó là nó.

CẬP NHẬT: Để thay đổi chủ sở hữu của các tệp, bạn chỉ cần chạy

chown -R student:student /home/student/*

sau rsync.

Tôi nghi ngờ quyền phải được thay đổi, nhưng nếu vậy, bạn sẽ phải làm điều đó trên một tệp theo cơ sở tệp, đại loại như

chmod +x /home/student/bin/*

Điều này bảo vệ chủ sở hữu, nhóm và quyền có trên tất cả các tệp trong / etc / skel. Điều này gây ra vấn đề vì root sở hữu hầu hết các tệp đó và do đó, khi người dùng đăng nhập vào anh ta và các quy trình của anh ta không sở hữu các tệp. Khi tôi chạy useradd -m, nó sẽ đặt chủ sở hữu, nhóm và quyền khi cần thiết để đăng nhập thực sự hoạt động.
eleven81

Xem cập nhật của tôi. Là những gì bạn muốn?
itsadok

Tôi sẽ phải thử cập nhật chown sau ngày hôm nay. Có vẻ rất hứa hẹn!
eleven81

Itsadok: Tôi đã làm cho nó hoạt động với dòng rsync và dòng chown -R (trừ dấu gạch chéo và dấu sao cuối cùng) theo cách tôi muốn. Tôi không phải sửa đổi bất kỳ quyền nào. Cảm ơn bạn rất nhiều!
eleven81

Itsadok: Có vẻ như dòng rsync không sao chép các thư mục ẩn (những người có tên bắt đầu bằng a.) từ / etc / skel vào / home / student. Có ý kiến ​​gì không?
eleven81

0

Được gắn thẻ với "bash", vì vậy tôi cho rằng bạn đang xem đăng nhập dòng lệnh, thay vì GUI

student@pc:~$ cat .bash_logout 
if [ "$SHLVL" = 1 ]; then
    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi
cd ~
rm -r ~/* ~/.[a-zA-Z1-9]*
cp -r /etc/skel/* /etc/skel/.[a-zA-Z1-9]* .

3 dòng đầu tiên ở trên là tiêu chuẩn (ít nhất là trên máy Ubuntu của tôi) và phần còn lại chưa được thử nghiệm. Tuyến đường này có lợi thế là không cần phải được thực hiện độc quyền như root.


Ngoại trừ việc nó cũng được gắn thẻ "gdm".
Dennis Williamson

0

Chuẩn bị:

sudo mkdir /home/clean-homes/
sudo tar zcvf /home/clean-homes/$user.tar.gz ~user

Tôi không sử dụng GDM và vì vậy quên định dạng của /usr/share/xsessions/*.desktop nó sử dụng, nhưng chúng đơn giản. Có của bạn gọi một kịch bản như

#! /bin/sh
cd
mkdir .old
mv * .* .old
rm -rf .old &
tar zxpPf /home/clean-homes/$USER.tar.gz
exec gnome-session  # or whatever

Điều này có người dùng mới thực hiện tất cả công việc xóa các tệp cũ và tạo lại nội dung của thư mục chính, khi đăng nhập. Đây không phải là một giải pháp nếu bạn muốn các tập tin cũ là bảo đảm từ người dùng mới: trong trường hợp này, bạn nên tạo nhiều người dùng [tại sao bạn không?] hoặc khuyên mọi người chạy tập lệnh 'sạch-đăng xuất' hoặc - nếu bạn có người bị khóa đăng nhập chỉ /usr/share/xsessions/*.desktop s - viết lại tập lệnh trên với các đường dẫn tuyệt đối và không có nền rm.

Đừng dựa vào người dùng làm trống các thư mục của riêng họ khi đăng xuất. Xem: ctrl + alt + backspace, pkill gnomevà sức mạnh của máy tính có thể truy cập được.


0

Ubuntu 8.10 trở lên có tiêu chuẩn với tùy chọn "Phiên khách". Điều này chuyển sang một tài khoản khách với tất cả các chương trình và thư mục thông thường ở trạng thái còn trinh. Mọi thay đổi của khách sẽ bị mất khi khách đăng xuất. Bất cứ lúc nào bạn có thể chuyển sang phiên bình thường bằng cách nhập mật khẩu của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.