# 관리자의 모든 게시물을 삭제하는 방법

**URL:** https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861
**Category:** Support
**Created:** [4월 13, 2020, 7:39오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861 "2020-04-13T19:39:46Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![christian\_01](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/christian_01/32/162392_2.png) [@christian\_01](https://meta.discourse.org/u/christian_01)
#### Post date: [4월 13, 2020, 7:39오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/1 "2020-04-13T19:39:46Z")

</div>

특정 프로필의 관리자 권한을 취소하고 싶은데, ‘취소’ 버튼이 없습니다. 내 사이트의 다른 ‘스태프’ 계정에는 버튼이 있습니다.

이유와 해결 방법을 알려 주실 수 있을까요?

---

<div class="post-metadata">

### Author: ![jomaxro](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jomaxro/32/126216_2.png) [@jomaxro](https://meta.discourse.org/u/jomaxro)
#### Post date: [4월 13, 2020, 7:48오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/2 "2020-04-13T19:48:38Z")

</div>

현재 로그인 중인 계정에서 관리자 권한을 취소하려고 하는 건 아닌지 확인하는 거예요?

---

<div class="post-metadata">

### Author: ![christian\_01](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/christian_01/32/162392_2.png) [@christian\_01](https://meta.discourse.org/u/christian_01)
#### Post date: [4월 13, 2020, 8:15오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/3 "2020-04-13T20:15:20Z")

</div>

아니요. 다른 계정입니다… '뉴스봇’이라고 지었는데, RSS 피드를 가져오는 데 사용했습니다.

이제 그 게시물들을 삭제하고 싶습니다.

---

<div class="post-metadata">

### Author: ![jomaxro](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jomaxro/32/126216_2.png) [@jomaxro](https://meta.discourse.org/u/jomaxro)
#### Post date: [4월 13, 2020, 8:29오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/4 "2020-04-13T20:29:07Z")

</div>

이 계정의 이메일이 `app.yml` 파일에 개발자로 등록되어 있나요? 아니면 콘솔을 통해 개발자 권한을 부여한 것인가요?

---

<div class="post-metadata">

### Author: ![neounix](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neounix/32/215617_2.png) [@neounix](https://meta.discourse.org/u/neounix)
#### Post date: [4월 14, 2020, 6:04오전 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/5 "2020-04-14T06:04:25Z")

</div>

> [@christian\_01](#):
>
> 단일 프로필의 관리자 권한을 취소하고 싶은데, ‘취소’ 버튼이 없습니다. 제 사이트의 다른 ‘Staff’ 계정에는 버튼이 있습니다.
> 
> 이유와 수정 방법이 무엇인지 혹시 아시는 분 계신가요?

보안상의 이유로 `.yml` 빌드 파일에 `DEVELOPERS`로 나열된 사용자는 UI에서 삭제할 수 없습니다:

```plaintext
 ## TODO: 초기 가입 시 관리자 및 개발자로 지정될 쉼표로 구분된 이메일 목록
  ## 예: 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: `incredible_undeletables@myamazingdomain.com'

```

 ![Screen Shot 2020-04-14 at 12.59.02 PM](https://global.discourse-cdn.com/meta/original/3X/5/9/59bc2edaa2bd48fae660a3e054d64417e8e92b5e.jpeg)

`.yml` 빌드 파일에서 해당 사용자를 제거하고 다시 빌드해야 합니다.

대안으로, 권장하지는 않으며 지원되지도 않는 방법(제 추측으로는)은 데이터베이스의 `users` 테이블에서 해당 사용자의 관리자 상태(불리언 값)를 직접 FALSE로 변경하는 것입니다. 참고: 저는 이렇게 한 적이 없습니다(권한을 취소한 적은 없지만, 이 방식으로 모더레이터를 추가한 적은 있습니다) 하지만, 익숙하지 않은 것을 데이터베이스에서 직접 건드리는 이러한 작업은 의도치 않은 결과를 초래할 수 있으므로, 다른 모든 방법이 실패했을 때만 권장하며(작업 전에 데이터베이스의 작동하는 백업이 100% 준비되어 있는지 반드시 확인하세요!).

`.yml` 파일을 확인해 보세요… 문제가 그곳에 있을 가능성이 매우 높습니다.

---

<div class="post-metadata">

### Author: ![christian\_01](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/christian_01/32/162392_2.png) [@christian\_01](https://meta.discourse.org/u/christian_01)
#### Post date: [4월 14, 2020, 2:52오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/6 "2020-04-14T14:52:02Z")

</div>

이 사용자는 내 .yml 파일에 나열되어 있지 않습니다.

관리자조차도 기본적인 포럼 유지 관리 기능에 접근할 수 없을 때 정말 답답합니다.

---

<div class="post-metadata">

### Author: ![neounix](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neounix/32/215617_2.png) [@neounix](https://meta.discourse.org/u/neounix)
#### Post date: [4월 14, 2020, 3:07오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/7 "2020-04-14T15:07:08Z")

</div>

> [@christian\_01](#):
>
> 이 사용자는 제 .yml 파일에 나열되어 있지 않습니다.

그렇다면 데이터베이스(DB)에서 직접 다음과 같은 방법을 시도해 볼 수 있습니다:

```plaintext
update users set admin = false where username = 'user_name_of_rouge_user';

```

여기서:

- 'user\_name\_of\_rouge\_user’는 문자열(string)입니다.

그리고:

- false는 불리언(boolean) 값입니다.

관리자 권한을 가진 문제 사용자를 발견했는데, 관리자 패널에서 권한을 취소할 수 없는 상황이므로 제가 이 경우 취할 조치입니다.

---

<div class="post-metadata">

### Author: ![xrav3nz](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/xrav3nz/32/76894_2.png) [@xrav3nz](https://meta.discourse.org/u/xrav3nz)
#### Post date: [4월 14, 2020, 3:50오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/8 "2020-04-14T15:50:39Z")

</div>

> [@christian\_01](#):
>
> Newsbot

추측이지만 혹시 [Discobot을 커스터마이징](https://meta.discourse.org/t/how-to-customize-discobot/103633)하여 이름을 Newsbot으로 변경한 건가요? 이 봇은 시스템 사용자로 간주되며, 관리자 권한을 취소할 수 없습니다.

Newsbot이 실제로 discobot인지 확인하려면 프로필 페이지로 가서 이메일 주소를 확인해 보세요:

 ![Screenshot from 2020-04-14 11-46-44](https://global.discourse-cdn.com/meta/original/3X/9/1/91460f377389ed1dd14848fdff97130cbebb2209.png)

봇의 이메일은 `discobot_email`로 표시됩니다.

---

<div class="post-metadata">

### Author: ![christian\_01](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/christian_01/32/162392_2.png) [@christian\_01](https://meta.discourse.org/u/christian_01)
#### Post date: [4월 17, 2020, 5:08오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/9 "2020-04-17T17:08:49Z")

</div>

네, 정확히 그렇게 했습니다. 이 Discobot 프로필을 RSS 피드를 가져오는 데 사용했는데, 이제 이를 제거하려고 합니다. 프로필은 그대로 두어도 되며, 모든 게시글/토픽만 삭제하고 싶습니다.

개발자가 아니므로, 간단한 단계로 설명해 주시면 감사하겠습니다.

---

<div class="post-metadata">

### Author: ![jomaxro](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jomaxro/32/126216_2.png) [@jomaxro](https://meta.discourse.org/u/jomaxro)
#### Post date: [4월 17, 2020, 5:37오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/11 "2020-04-17T17:37:26Z")

</div>

좋아요, 여기서는 관리자 권한에 대해 실제로 알고 싶지 않다는 거죠. 목표가 게시물 삭제인가요? 앞으로는 현재 단계가 목표 달성에 도움이 될 거라고 생각하는 것이 아니라, 최종 목표를 알려주세요.

특정 사용자의 모든 게시물을 삭제하는 rake 태스크는 없는 것 같습니다. 몇 가지 테스트를 해보고 다시 알려드리겠습니다.

좋습니다. 다음 방법으로 사용자의 모든 게시물을 삭제할 수 있습니다. 서버 접근 권한이 필요합니다.

1. Discourse가 실행 중인 서버에 SSH로 접속하세요.
2. Discourse 인스턴스의 rails 콘솔에 접근하세요.

```plaintext
cd /var/www/discourse
sudo ./launcher enter app
rails c

```

3. 삭제하려는 사용자의 id를 가져온 후 해당 사용자의 모든 게시물을 삭제하세요. 여기서는 사용자 이름이 `newsbot`이라고 가정하고 있습니다. 그렇지 않다면 **명령어를 반드시 수정** 해야 합니다.

```plaintext
id = User.find_by_username('newsbot').id
Post.where(user_id: id).each do |p|
  PostDestroyer.new(Discourse.system_user, p).destroy  
end;

```

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [5월 28, 2024, 6:53오전 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/14 "2024-05-28T06:53:17Z")

</div>



---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [5월 28, 2024, 2:56오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/15 "2024-05-28T14:56:23Z")

</div>



---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [5월 28, 2024, 5:00오후 UTC](https://meta.discourse.org/t/how-to-delete-all-posts-for-an-admin/147861/16 "2024-05-28T17:00:40Z")

</div>


